Coder Social home page Coder Social logo

rhenaudthelukark / createyourfrisk Goto Github PK

View Code? Open in Web Editor NEW
126.0 18.0 52.0 127.88 MB

Rhenaud The Lukark's Unitale fork

License: GNU General Public License v3.0

C# 65.82% Python 0.44% Lua 10.35% CSS 0.23% HTML 21.59% JavaScript 0.14% ShaderLab 1.41% HLSL 0.02%

createyourfrisk's Introduction

Create Your Frisk - Lua moddable Undertale engine

Welcome to the Git repository for Create Your Frisk, a fork of Unitale by lvk!

When testing, you'll want to load the Disclaimer scene from the Scenes folder.

Editing the Overworld requires Unity (see Unity Version below).

We also have a Discord server! Feel free to check it out if you want to be in touch with Unitale and Create Your Frisk's community!


Download

To download the engine, go to the releases page.


Unity Version

CYF's latest version is v0.6.6. It was built using Unity Personal 2018.4.36f1, or Unity 2018's Long Term Support version.

To get this version of Unity, either:


Required files

Please keep the mods and the resources which are in the Mods and Default folders, unless you know what you're doing. The only mods you can remove safely are Mionn and Donald Trump. (Removed as of CYF v0.6.2)


Licenses

Create Your Frisk is released under the GNU General Public License 3.0. We are using MoonSharp as our Lua interpreter, written by Marco Mastropaolo. The binary is included in /Assets/Plugins. License details in MOONSHARP_LICENSE.

createyourfrisk's People

Contributors

deonix37 avatar eir-nya avatar rhenaudthelukark avatar shiftenas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

createyourfrisk's Issues

[Issue] Text positioning not 100% consistent

Describe the bug
When changing the font (with [font:]) inside a text object, the text is displaced in the same line. However, in the following lines, it's again placed as it should be (as long as you won't change the font again).

Code to reproduce

Text = CreateText({"[font:uidialog]First","Not first","[font:monster]Also not first","Fourth"},{320, 240},150,"Top",150)

Workaround
If anyone else is struggling with this, there is a partial workaround for it. Whenever you are changing the font at the beginning of a line, create an additional empty line before it ending with [next] and change the font there.

Text = CreateText({"[font:uidialog][next]","First","Not first","[font:monster][next]","Also not first","Fourth"},{320, 240},150,"Top",150)

If you are changing font mid-line, then you are doomed I can't help you.

Setup:

  • OS: Windows
  • Version: 0.6.2

[Issue] Strange behavior when using [] at the beginning of encounter text

Describe the bug
When starting an encounter text with something (that isn't a function) between [], that text is displayed before the * symbol.

Code To Reproduce

encountertext = "[abc]Hi!"

Result
image

Expected behavior
Text (with the brackets) should be displayed after the star. However, an option to add text before the star or even remove the star at all could be proven useful.

Setup:

  • OS: Windows
  • Version 0.6.2.1

Using the butterscotch pie in the demo overworld freezes the game

Describe the bug
In the demo overworld, if you pick up the butterscotch pie and use it from the ITEM menu it freezes the game, effectively stopping you from closing the menu or doing anything else. No keys respond.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the overworld.
  2. Pick up the butterscotch pie.
  3. Eat it through the ITEM menu.
  4. The game freezes.

Expected behavior
The game should not freeze, and even though you have full health you should still be able to eat it.

Setup

  • OS: Windows
  • Version: 0.6.5
  • Mod: Default overworld

Adds a command called "Misc.RedirectEncounter"

Misc.RedirectEncounter( string encounterPathname )
This command will quit of current encounter and will change to next encounter if encounterPathname is nil or will change to encounterPathname to encounter that has this file name.
Results:

  • Will throw a error if the encounterPathname is invalid(Trying to change a encounter that does not exist)
  • Will clear the temp data and redirect the encounter to "encounterPathname" if valid

Example:
A encounter pack / folder has 3 encounter lua files.
Poseur.lua , Posette.lua and Team.lua
If the player kill Poseur.lua the encounter developer can redirect the encounter to Team.lua or Posette.lua calling Misc.RedirectEncounter("posette.lua")

Pausing text boxes using waitfor shows extra characters

CYF Version: v0.6.1.1

There is an issue I encountered while messing with text objects (but it works with enemy dialogue too).
Whenever text is paused by using waitfor, then, based on the text's speed (waitall and w commands do not make a difference), additional characters will be shown, ones that come after the waitfor call.

How to reproduce

  • Make a new encounter for testing
  • Either create a text object, or set the enemy's dialogue (it works for both)
  • Enter some test text (For example, I used: Text_text_text[waitfor:C]_Test_test_test
  • Load up the mod, and navigate to when the text starts to type

Result

Extra characters are typed based on speed, which is 1 by default.

For example, Text_text_text[waitfor:C]_Test_test_test will display Text_text_text_ instead of Text_text_text

Changing the text's speed also gives a different outcome:

[speed:2]Text_text_text[waitfor:C]_Test_test_test will show Text_text_text_T.
[speed:6] will show Text_text_text_Tes, and more extra characters will be shown with faster text.

Again, applying any w or waitall commands will do nothing but slow down the text, it will still go on to type out extra characters.

NewAudio.GetVolume() doesn't work properly.

Example:

NewAudio.CreateChannel("a_normal_channel")
NewAudio.SetVolume("a_normal_channel", 0.5)
NewAudio.GetVolume("a_normal_channel")

NewAudio.GetVolume() will always return 1, though the volume actually was changed.

CYF version: 1.0 for Windows 64-bit.

[Issue] Text skipping not working in multi-line text

Describe the bug
You can only skip text by clicking shift while line is being typed. If you start holding shift before line starts appearing (and are still holding it while the line is being typed) it won't skip it. In original game it displays the line instantly if you hold shift before you press Z.

Setup:

  • OS: Windows
  • Version 0.6.2

Next Version??

Well i'm little worried Because its seem that there's Not any update so if i'm bad on asking you but, you will give a date for the next version of CYF??

dobble dodge of the enemy

Describe the bug
The enemy dodges nothing again.

To Reproduce
Play the mod normally

Expected behavior
When I attack the enemy he should dodge and say something. But he doges angain while speaking (or at least make the dodge animation again). And also the 4th wave is broken but that's not a bug compatibilyty mode fixed that.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: Windows
  • Version: 0.6.2.1
  • Mod MYTALE sans (on gamejolt)

Additional context
It works perfectly fine on 0.6.2.0. So the bug must come from here.

How do i execute it?

i dont know how to execute it, do i need to download something else? or theres a .exe in the folders?

[Suggestion] Optimizations

As the title says, it would be good to make CYF work the same as Unitale in terms of performance because for example in the overworld the character goes very slow like a snail, apart from that in some battles is slow but other fast, another example is the of the posseour that in that performance is decent, but when you use certain attacks the performance goes down.

PC Specs:

Ram: 2 Gb
Processor: Intel(R) Atom(TM) CPU N2100 @ 1.60GHz, 1600 Mhz
Graphics: Intel(R) Graphics Media Accelerator 3600 Series
Shader Model: 3.0

I know that is not a priority for now, but it would be good if the performance is improved a bit so that it works as Unitale, in terms of performance for PCs like the one I have

revive problem

Player becomes invisible after he dies if revive is set to true.
Also, the hp value doesn't update visually after reviving.
CYF version: 0.6.1 for Windows 64-bit.

Create your frisk'de Asriel dışında bir karakterle sağdaki köpeği geçmek

this language is turkish

Asriel ile köpeği gönderdikten sonra karakterimi değişmesini sağladım, ben Chara yı seçtim. Ama Create your frisk'in yaratılış hikayesinden sonra çıkan turuncu karakterle konuşurken yine asriel ortaya çıktı bu bir bug mu yoksa henüz yapmadınız mı bilmiyorum ama bence bunu bir başkasında farketmeden yapılması gerek

Platform Windows 7
Version 0.6.5

text object skipping problem

If you have a text object with lines that have [noskip] in them, and you press X fast enough at the beginning of the lines, then there is a big chance you'll skip them.

Text Objects ignore [noskip] for 1 frame

Description
When using a text object whose next line of text begins with [noskip], the player can still skip that line of text for 1 frame as it is appearing. [instant:stopall] does not fix it, either.

To Reproduce
Steps to reproduce the behavior:

  1. Go to any mod, or create a new mod for testing
  2. Create a text object with multiple strings of text
  3. Begin each string with [noskip]
  4. Start the mod in CYF, and hit X and Shift as fast as possible when the text is changing
  5. With some luck, you should be able to skip the text, even though [noskip] was there!

Expected behavior
[noskip] should prevent the Player from skipping text like this, like it does for BattleDialog and monster text.

Setup:
Windows x64
CYF v0.6.1.2
Mod: any

Remove me from 0.5.0_SEE_CRATE

On November 2nd, 2016, I was added and finalized as part of a secret in Create Your Frisk. I was represented by using Asriel as an avatar, and was referenced by username in dialogue, along with graphics of a petting animation.

I am requesting that I be removed from this secret and no longer appear as a character in Create Your Frisk. It may seem a bit random to request removal for something added over four years ago now, but due to personal reasons, I'm not comfortable with my portrayal in the 0.5.0 CYF secret anymore.

SetButtonLayer(layer) not working as intended

Describtion
Probably a minor issue but issue none the less.
SetButtonLayer(layer) function sets the layer of player name, lv and hp but not the layer of the FIGHT, ACT, ITEM and MERCY buttons as implied in the documentation and function name itself.

To Reproduce
Steps to reproduce the behavior:

  1. Make bg file in Sprites folder see-through (fully back with alpha32 being 166 in the screenshot below)
  2. Put this in your encounter script:
    function EncounterStarting() SetButtonLayer("Bottom") end
  3. Launch the encounter
  4. See error

Expected behavior
The buttons were expected to have a black tint but the name, lv and hp have this tint instead.

Screenshot

image

Setup:

[Issue] Incorrect indexing when setting .currentframe

Describe the bug
When reading .currentframe (DEBUG(sprite.currentframe)), it returns the current frame as if they were
1-indexed. However, when setting .currentframe (sprite.currentframe = 1) they are set as if they were shifted by 1 (similar to 0-indexing, but the first element is now the last one). According to the documentation, frames are supposed to be 1-indexed, meaning that setting .currentframe uses wrong indexing.

Code To Reproduce

sprite = CreateSprite("bullet","Top")
sprite.SetAnimation({"bullet","poseur"})
sprite.currentframe = 1
DEBUG(sprite.currentframe)

or

sprite = CreateSprite("bullet","Top")
sprite.SetAnimation({"bullet","poseur"})
sprite.animationpaused = true
function Update()
  sprite.currentframe = sprite.currentframe
end

Setup:

  • OS: Windows
  • Version 0.6.2

CYF fails to show screen output on linux

Describe the bug
When running the Linux 64bit executable file for CYF 0.6.4, the program runs but outputs just a black screen. When I press Z and go into the mod, I can hear the background music playing and the colour changes.

To Reproduce
Steps to reproduce the behavior:

  1. Go to https://github.com/RhenaudTheLukark/CreateYourFrisk/releases/tag/v0.6.4 and download the CYF.v0.6.4.-.Linux.64-bit.zip version
  2. Extract the zip
  3. Give the .x86_64 file execution permission
  4. Run it

Expected behavior
I expected the title screen to show up that asks you if you want to go to overworld or mods.

Screenshots
When I first start CYF:
When I first start CYF

When I press Z a couple of times:
When I press Z a couple of times

Setup:

  • OS: Manjaro Linux
  • Desktop Environment: Gnome 3.34.2
  • Linux Kernel version: Linux 5.4.18-1-MANJARO
  • CYF Version: 0.6.4

Additional context
I've tried older versions of CYF and the 32 bit version of CYF and they both result in the same error

Getting color of Text Object doesn't work.

The documentation says:

Text.color – Get or set the color of the text...

Getting color doesn't work.
Example: Text.color[3] should return third value of text but it results in an error:
"Attempt to index a nil value".

CYF version: 1.0 for Windows 64-bit.

[next] not working for text object

Bug description
In text objects (created by CreateText()) [next] is completely ignored (same goes for [finished] and [nextthisnow], but I assume those are only related to enemy dialog).

Code to reproduce

Text = CreateText({"This is[next]","text that","should automatically change"},{320, 240},150,"Top",150)
Text.progressmode = "manual"

Workaround
If anyone else is struggling with this, there is a workaround for it. You have to create a global variable where the text object is stored as well as a function which has .NextLine() inside of it. While it is a working solution, it is required to create a variable and function for each and every text object (when you want to display more than one at once), extremely cluttering the code.

local Text
function PseudoNext()
  Text.NextLine()
end
Text = CreateText({"This is[func:PseudoNext]","text that","should automatically change"},{320, 240},150,"Top",150)
Text.progressmode = "manual"

Setup:

  • OS: Windows
  • Version: 0.6.1.2

OW bug: Softlock when entering a map

Description
In CYF's Overworld, if you walk South of the starting screen, the game will go to a black screen and the music will keep playing, but nothing will happen.

To Reproduce
Steps to reproduce the behavior:

  1. Enter CYF's Overworld in-game as any character
  2. Walk off the bottom side of the screen

Expected behavior
The game should transition the player to the inside of the CORE, at the bridge with Punderbolt.

Setup (please complete the following information):

  • OS: Windows
  • Version 0.6.1.2

Item menu doesn't open

The item menu in battles doesn't open upon selection.
Steps to reproduce the behavior:

  1. Enter any battle.
  2. Select Item option
  3. Doesn't open

Expected behavior
The selection sound effect plays, but the item menu doesn't open.

Setup (please complete the following information):

  • OS: Windows
  • Version [e.g. 0.6.2.1]

Additional context
I opened the mods and encounters on Unitale 0.2.1a to verify that they did have items.

Infinite Loop: autolinebreak + encountertext/BattleDialog with certain length

Describe the bug
An infinite loop can occur if autolinebreak is set to true and text entered into encountertext or BattleDialog is long enough.

To Reproduce
Steps to reproduce the behavior:

  1. Copy or edit the Encounter Skeleton.
  2. Paste in this code in EncounterStarting:
autolinebreak = true
encountertext = "wowaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  1. Start the mod in CYF.
  2. Observe the executable instantly freezing in an infinite loop.

Expected behavior
I expected the line to be split when the letters would have reached the edge of the battle box, as is what happens if the string is much longer.

Setup (please complete the following information):

  • OS: [e.g. Windows, Linux, Mac]
  • Version: v0.6.3 (and v0.6.4)

[Issue] Removing a bullet doesn't remove its sprite

Describe the bug
Using bullet.sprite.isactive return true, even after bullet.Remove(). I'm not sure if that means that the sprite is still active or if this flag just didn't change, but either way, it should return false. It's especially important when you loop through sprites, out of which some are just regular ones and some are "attached" to a bullet.

Code To Reproduce

bullet = CreateProjectileAbs("bullet", 70, 100)
bullet.Remove()
DEBUG(bullet.sprite.isactive)

Setup:

  • OS: Windows
  • Version 0.6.2

Overworld bugs.

Good news: this is the last bug report.
Bad news: overworld freezes sometimes after winning some random encounters or transitioning to other locations. By freezing I mean that it is just a black screen and nothing else. It happens almost every time.
Also, after entering any encounter the screen goes windowed if it was fullscreened (the same thing applies to modDev). And yeah, this is the default overworld, not a custom one.

Using a [func] call using BattleDialog in the EncounterStarting() function crashes the Encounter

Describe the bug
Read the title

To Reproduce
Steps to reproduce the behavior:

  1. Paste this in an encounter:
function EncounterStarting()
    BattleDialog({"TestText. Possible error incoming", "[func:a]"})
end

function a() 
    DEBUG("It works!") 
end
  1. Launch the encounter
  2. "Func called but no script to reference it. That's the engine's fault, not yours."

Expected behavior
The message "It works!" should appear in the debugger.

Setup (please complete the following information):

  • Any, on 0.6.1.2 and 0.6.1.1

Additional context
Any use of [func] outside of EncounterStarting() with the function BattleDialog() works like intended. It must likely be a problem of when this link is established.

[Feature Request] Adds a command "CheckPPCollision(x,y)"

CheckPPCollision(number x, number y )
This will return a table of bullets that is "touching" at position but with PPCollision Filter to only the bullets that has PixelPerfect Collision.

Why it is needed?:
Using AABB Collision will not detect the PPCollision Bullets and it can be useful for custom souls that use more than 1 hitbox to damage the player

Example:
Ignore the "black" color. i added it to prevent the github white layout from making it invisible
SlopeBullet

bullettest = CreateProjectileAbs("slopebullet",0,0) 
bullettest,ppcollision = true
--This will check if the position 30 0 is considered solid as PixelPerfectCollision system
bulletsAt30 = CheckPPCollision(30,0) 
if #bulletsAt30 == 0 then return 
else DEBUG("Filtered Bullets at position x=0 and y=0") end

Results:

  • Will throw a error if the arguments is empty
  • Will return false if no bullet is at position of bullet
  • Will return the table of bullets that is touching at bullet

Not working for Mac

Describe the bug
It said in the README that this error was fixed, but I'm still getting it.
The error: error in script CYF's startup: The engine detected no mods folder in your files; are you sure it exists?

To Reproduce
Just start it on Mac.

Expected behavior
The program would open.

Screenshots
screen shot 2018-11-21 at 10 06 06 am

Setup (please complete the following information):

  • OS: Mac OS X Mojave
  • Version: 0.6.1.2
  • Mod: None, happens on startup

Additional context
Do I need to download/install a dependency like Python or something?
EDIT: I installed the latest version of Python, but it didn't help.

[Issue] Incorrect documentation of [speed] and issues with it

Describe the issue
The documentation states that:
image
However, when at [speed:1], 1 character is being displayed, but every 4 frames.

Consequences
Now, it's not only a mistake in the documention. This has some pretty far going consequences.
Firstly, setting speed to 2 doesn't make it display 1 character every 2 frames, but instead displays 2 characters every 4 frames, making the text less smooth.
Secondly, since [speed] can only use integers, precision of it is significantly decreased (it actually makes it impossible to match the exact text speed of Deltarune).
It's also worth noting that, since text speed can't be lower than 1, making the text display slower than normally is only obtainable by putting [w] between every character.

Final notes
Similiar problems would occur with [letters], since it also displays n characters per "frame". That means that any fixes for [speed] should also be applied to [letters].

Setup:

  • OS: Windows
  • Version 0.6.2.1

[Issue] Not matched [ in TextObject freezes up CYF

Describe the bug
If text used in TextObject contains more [ than ] (so, there are some [ that are not matched), CYF will freeze up and go unresponsive when trying to display it. This doesn't happen for encounter or enemy text.

Code To Reproduce

CreateText({"[abc"}, {320, 240}, 150)

Expected behavior
Not only shouldn't it freeze up, but it shouldn't throw any error at all. It should simply display the [ and the following text, just like it does in encounter/enemy text.

Setup:

  • OS: Windows
  • Version 0.6.2.1

Time to bury the poor engine?

Just by starting programming an encounter, I've ran into a dozen of engine bugs. It's painful to look at this largely untested mess. Somebody should take notes for future projects.

Scaling glitches

Once I used a rescaling of my bullet(yscale only) and I got a little surprise, At first it perfectly worked...But then after the third time the attack was appearing, sometimes, the yscaling was to 1 or even 0 and there is no problem in my script, I am 100% sure of that...(I'm using 0.6.1.1 windows 64 version)

The new File object can't use ".."

As written when you try to go to an upper folder in CYF the use of the text ".." is forbidden... so you can't escape to a different folder.
but if you have a file that has ".." in it's name it wont let you use it either...
it may be practical if you need to load a file that has a name which ends with a dot, and then there is another dot for the extension.

Game Over screen [func] causes an error

Describe the bug
When using a [func:funcname] call in a game over screen the engine errors with the text "Func called but no script to reference. This is the engine's fault, not yours."

To Reproduce
Steps to reproduce the behavior:
Add "[func:funcname]" into part of the variable "deathtext"

Expected behavior
The function is called in the scope of the Encounter.

Hitbox scaling is incorrect in full screen mode

Describe the bug
Hitbox scaling is incorrect in full screen mode.

To Reproduce
Press H while in fullscreen mode.

Expected behavior
The hibox display would scale with screen size.

Screenshots
If applicable, add screenshots to help explain your problem.

Setup (please complete the following information):

  • OS: Windows, Linux,
  • Version: 0.6.1.2

Additional context
This is caused because the hitbox display do not scale with the canvas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.