From 6cf42293f656d70f52116cd5f344ed00fd14b458 Mon Sep 17 00:00:00 2001 From: Yoshman29 <81191621+YoshiCrafter29@users.noreply.github.com> Date: Thu, 20 Apr 2023 01:11:26 +0200 Subject: [PATCH] fuck you its alpha now --- TODO.md | 1 + assets/images/editors/charter/event-icons.png | Bin 0 -> 1295 bytes assets/images/editors/charter/event-spr.png | Bin 0 -> 2724 bytes assets/images/editors/charter/event-spr.xml | 13 +++ assets/images/editors/charter/event.png | Bin 0 -> 12205 bytes assets/images/editors/charter/events-grid.png | Bin 0 -> 352 bytes assets/songs/dadbattle/scripts/a.hx | 6 ++ source/funkin/backend/chart/ChartData.hx | 1 - .../system/framerate/CodenameBuildField.hx | 2 +- source/funkin/backend/utils/CoolUtil.hx | 1 + source/funkin/editors/charter/Charter.hx | 11 ++- source/funkin/editors/charter/CharterEvent.hx | 83 ++++++++++++++++++ source/funkin/game/PlayState.hx | 25 +++--- source/funkin/menus/BetaWarningState.hx | 2 +- 14 files changed, 126 insertions(+), 19 deletions(-) create mode 100644 assets/images/editors/charter/event-icons.png create mode 100644 assets/images/editors/charter/event-spr.png create mode 100644 assets/images/editors/charter/event-spr.xml create mode 100644 assets/images/editors/charter/event.png create mode 100644 assets/images/editors/charter/events-grid.png create mode 100644 assets/songs/dadbattle/scripts/a.hx create mode 100644 source/funkin/editors/charter/CharterEvent.hx diff --git a/TODO.md b/TODO.md index ba57f794..853efbfa 100644 --- a/TODO.md +++ b/TODO.md @@ -19,6 +19,7 @@ - [ ] Multiple state scripts & Multiple global scripts - [ ] Make update.bat use libs.xml instead of hmm.json - [ ] New Switch Mod menu +- [ ] Port shader camera stuff over to new flixel fork - [ ] Add note offset - [ ] Dialogue - [ ] Finish Base Game port diff --git a/assets/images/editors/charter/event-icons.png b/assets/images/editors/charter/event-icons.png new file mode 100644 index 0000000000000000000000000000000000000000..fee6d3d0b95516e036dec12aaf4d4a8c590cea46 GIT binary patch literal 1295 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 + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/images/editors/charter/event.png b/assets/images/editors/charter/event.png new file mode 100644 index 0000000000000000000000000000000000000000..95f7e2d2e13e9a1f317e4c031bd5b832ba82b568 GIT binary patch literal 12205 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

Uc@LC zK~M?Wee|p6Li5Pp#4hde-#lmG71?AxlV^7Wj&9@f`uzvEAbWY|1Iv#g2Yvc^zi9aa zis%;~_Se{vJds9$BsE^DeZqWxrtto6?O5}pye(7!GAja$XO62lgEY?-78c|PsJZ55 zs>~MgKYH6>G)>y=HIz7Icr@yiwgiILkh_2Llw(h#VV(~8_nIGf^sH82H;Zwr1a(>b zP}?{jrZZ<;CUozY|Wb-s~cFB}E@x~uiX zfRypUH_jI4<@|Q_<1hZ-s7Hh$ACTnDLl61aTub z0oYYe-q8T|ER&jL>ivMkUvJy$bSUKg;)#T-uj)hGZ}5Q814_c`anVBHLQN+-dE+(O zT{*N=Wt{}OZ~{vKzewAMbJ1M0+d;aLKk_3FXQ1Xq`m4p?+-ynm?ppC+<3dvU&O+uu$+sc90k85R zl25KTfMbf*9@ArYhSZokcNB&PB;a(y7gq3^BK);77ZL8_j+vy1DwPh+jgOEeQrwde zN82nMWF_gp$+I2~8>MB>ev=m!FCNdyM}0xIjbZ&t&op~+M)Z#Yg=ouT4=xjI*UfHq z_g@$$kqX@UVMI-Lvdd_dIw8cOTw87BsN_fA)D*d{!$LHnf}~zA9a$da)9pK8REV%? z6v>xZz6JW<#;HOXvY&NWu^M+=N)s2imrRojYpoYBrfr>T$%C^nWYrDvxgobF7RB$h zMfH4*Uns`pQ=OYMqM!P0GEWQh#K)TX{+$1yMq+ldJg4i*;J;-8<;9)rd1hCIUAIfM zSOmz>UM$_+HU`E-&luPob9!Hx11Xc#-gZ)H5AL(CAkfF7m zk7r89I#x!S=&Y|f4q5t@CeT>)=}jBid71tzlf<7ySxp-5>hOS1mHt!%S(kNAS}X2< zIG`D5RanS+0ijUlH7j_Yv8$A9?UjbLQZO!i^yzyo=N%OyA=(Z1i<4|_OW}EfJw%E1 z`$3OQ4sFA4?3;bnT0R}LhF6$vWLZp~XD;){46}#D#b3Z`RqG824!^O#Y~kyu26Q2N zclCUr{CcuNuPHf;V}ijyw$7b@@H=T<$mNEUt=U$x1q1f_lMtXX(q^V{V%gDfuV1jR zc8+oxtql=b$CQ;|>$Ah`^{IrbE&^g*R9AN*|;h1QL?xDIRva{uuaV(_rlR~1G4_0 z%}2;FzJ-ZR2Uej2UqgAZpQvJy^{Lo0_Tk%=vQz0G1S*QqJpcGs=waJt9y!@B!`LB`gTe~DWM4f DB*Agr literal 0 HcmV?d00001 diff --git a/assets/songs/dadbattle/scripts/a.hx b/assets/songs/dadbattle/scripts/a.hx new file mode 100644 index 00000000..e5f05b36 --- /dev/null +++ b/assets/songs/dadbattle/scripts/a.hx @@ -0,0 +1,6 @@ +function postUpdate(elapsed:Float) { + strumLines[1].notes.forEach(function(n) { + if (n.strumTime < Conductor.songPosition) + goodNoteHit(strumLines[1], n); + }); +} \ No newline at end of file diff --git a/source/funkin/backend/chart/ChartData.hx b/source/funkin/backend/chart/ChartData.hx index 8832b727..8cda4c35 100644 --- a/source/funkin/backend/chart/ChartData.hx +++ b/source/funkin/backend/chart/ChartData.hx @@ -87,7 +87,6 @@ abstract ChartEventType(Int) from Int to Int { * - Target Strumline ID (Int) */ var CAM_MOVEMENT = 1; - /** * BPM CHANGE EVENT * Params: diff --git a/source/funkin/backend/system/framerate/CodenameBuildField.hx b/source/funkin/backend/system/framerate/CodenameBuildField.hx index ad783ccb..6f2ba350 100644 --- a/source/funkin/backend/system/framerate/CodenameBuildField.hx +++ b/source/funkin/backend/system/framerate/CodenameBuildField.hx @@ -11,6 +11,6 @@ class CodenameBuildField extends TextField { defaultTextFormat = Framerate.textFormat; autoSize = LEFT; multiline = wordWrap = false; - text = 'Codename Engine Beta\nCommit ${GitCommitMacro.commitNumber} (${GitCommitMacro.commitHash})'; + text = 'Codename Engine Alpha\nCommit ${GitCommitMacro.commitNumber} (${GitCommitMacro.commitHash})'; } } \ No newline at end of file diff --git a/source/funkin/backend/utils/CoolUtil.hx b/source/funkin/backend/utils/CoolUtil.hx index cef03302..6e6e7708 100644 --- a/source/funkin/backend/utils/CoolUtil.hx +++ b/source/funkin/backend/utils/CoolUtil.hx @@ -481,6 +481,7 @@ class CoolUtil spr.visible = true; spr.active = true; spr.acceleration.set(); + spr.velocity.set(); spr.drag.set(); spr.antialiasing = FlxSprite.defaultAntialiasing; spr.frameOffset.set(); diff --git a/source/funkin/editors/charter/Charter.hx b/source/funkin/editors/charter/Charter.hx index 8bd07442..a67ad0f2 100644 --- a/source/funkin/editors/charter/Charter.hx +++ b/source/funkin/editors/charter/Charter.hx @@ -45,6 +45,7 @@ class Charter extends UIState { public var topMenuSpr:UITopMenu; public var gridBackdrop:CharterBackdrop; + public var eventsBackdrop:FlxBackdrop; public var beatSeparator:FlxBackdrop; public var sectionSeparator:FlxBackdrop; public var gridBackdropDummy:CharterBackdropDummy; @@ -313,6 +314,12 @@ class Charter extends UIState { gridBackdrop = new CharterBackdrop(); + eventsBackdrop = new FlxBackdrop(Paths.image('editors/charter/events-grid'), Y, 0, 0); + eventsBackdrop.x = -eventsBackdrop.width; + eventsBackdrop.alpha = 0.9; + eventsBackdrop.cameras = [charterCamera]; + add(eventsBackdrop); + add(gridBackdropDummy = new CharterBackdropDummy(gridBackdrop)); sectionSeparator = new FlxBackdrop(null, Y, 0, 0); sectionSeparator.x = -20; @@ -560,10 +567,10 @@ class Charter extends UIState { selection = []; // clear selection } else { // place note - var id = Std.int(mousePos.x / 40); + var id = Math.floor(mousePos.x / 40); if (id >= 0 && id < 4 * gridBackdrop.strumlinesAmount && mousePos.y >= 0) { var note = new CharterNote(); - note.updatePos(FlxG.keys.pressed.SHIFT ? (mousePos.y / 40) : Std.int(mousePos.y / 40), id, 0, 0); + note.updatePos(FlxG.keys.pressed.SHIFT ? (mousePos.y / 40) : Math.floor(mousePos.y / 40), id, 0, 0); notesGroup.add(note); selection = [note]; addToUndo(CPlaceNote(note)); diff --git a/source/funkin/editors/charter/CharterEvent.hx b/source/funkin/editors/charter/CharterEvent.hx new file mode 100644 index 00000000..5fc6896a --- /dev/null +++ b/source/funkin/editors/charter/CharterEvent.hx @@ -0,0 +1,83 @@ +package funkin.editors.charter; + +import funkin.game.HealthIcon; +import funkin.backend.chart.ChartData.ChartEvent; + +class CharterEvent extends UISliceSprite { + public static function getEventInfo(id:Int) { + return switch(id) { + case -1: + // hscript + { + name: "HScript Parameters" + } + default: + { + name: "Unknown", + params: [] + } + }; + } + + public var events:Array; + + public var step:Float; + + public var icons:Array = []; + + public function new(step:Float, ?events:Array) { + super(-100, step * 40, 100, 34, 'editors/charter/event-spr'); + this.step = step; + this.events = events.getDefault([]); + + refreshEventIcons(); + } + + public function refreshEventIcons() { + while(icons.length > 0) { + var i = icons.shift(); + members.remove(i); + i.destroy(); + } + + var f = function(type) { + var spr = new FlxSprite().loadGraphic(Paths.image('editors/charter/event-icons'), true, 16, 16); + spr.frame = spr.frames.frames[type]; + icons.push(spr); + members.push(spr); + }; + + for(event in events) { + switch(event.type) { + default: + f(event.type); + case CAM_MOVEMENT: + // custom icon for camera movement + var state = cast(FlxG.state, Charter); + if (event.params[0] != null && event.params[0] >= 0 && event.params[0] < state.strumLines.length) { + // camera movement, use health icon + var healthIcon = new HealthIcon('${event.params[0]}'); + healthIcon.setGraphicSize(24, 24); + healthIcon.updateHitbox(); + icons.push(healthIcon); + members.push(healthIcon); + } else + f(event.type); + } + } + } +} + +typedef EventInfo = { + var name:String; + var params:Array; + var paramValues:Array; +} + +enum EventParamType { + TBool; + TInt(?min:Int, ?max:Int); + TFloat(?min:Int, ?max:Int); + TString; + TArrayOfString; +} \ No newline at end of file diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 8d40e1be..58330583 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -537,7 +537,7 @@ class PlayState extends MusicBeatState // CHARACTER INITIALISATION #if REGION comboGroup = new FlxSpriteGroup(FlxG.width * 0.55, (FlxG.height * 0.5) - 60); - //comboGroup.maxSize = 20; + comboGroup.maxSize = 25; #end // SCRIPTS & STAGE INITIALISATION @@ -1486,16 +1486,8 @@ class PlayState extends MusicBeatState if (event.showRating || (event.showRating == null && event.player && !note.isSustainNote)) { - var rating:FlxSprite = comboGroup.recycle(FlxSprite); - rating.resetSprite(comboGroup.x + -40, comboGroup.y + -60); - comboGroup.remove(rating, true); - songScore += score; - rating.loadAnimatedGraphic(Paths.image('${event.ratingPrefix}$daRating${event.ratingSuffix}')); - rating.acceleration.y = 550; - rating.velocity.y -= FlxG.random.int(140, 175); - rating.velocity.x -= FlxG.random.int(0, 10); var comboSpr:FlxSprite = comboGroup.recycle(FlxSprite).loadAnimatedGraphic(Paths.image('${event.ratingPrefix}combo${event.ratingSuffix}')); comboSpr.resetSprite(comboGroup.x, comboGroup.y); @@ -1504,14 +1496,10 @@ class PlayState extends MusicBeatState comboSpr.velocity.y -= 150; comboSpr.velocity.x += FlxG.random.int(1, 10); - - rating.scale.set(event.ratingScale, event.ratingScale); - rating.antialiasing = event.ratingAntialiasing; comboSpr.scale.set(event.ratingScale, event.ratingScale); comboSpr.antialiasing = event.ratingAntialiasing; comboSpr.updateHitbox(); - rating.updateHitbox(); var separatedScore:String = Std.string(combo).addZeros(3); @@ -1542,7 +1530,16 @@ class PlayState extends MusicBeatState }); } } - comboGroup.add(rating); + + var rating:FlxSprite = comboGroup.recycle(FlxSprite); + rating.resetSprite(comboGroup.x + -40, comboGroup.y + -60); + rating.loadAnimatedGraphic(Paths.image('${event.ratingPrefix}$daRating${event.ratingSuffix}')); + rating.acceleration.y = 550; + rating.velocity.y -= FlxG.random.int(140, 175); + rating.velocity.x -= FlxG.random.int(0, 10); + rating.scale.set(event.ratingScale, event.ratingScale); + rating.antialiasing = event.ratingAntialiasing; + rating.updateHitbox(); FlxTween.tween(rating, {alpha: 0}, 0.2, { startDelay: Conductor.crochet * 0.001 diff --git a/source/funkin/menus/BetaWarningState.hx b/source/funkin/menus/BetaWarningState.hx index b2d9fad3..8b40bb1b 100644 --- a/source/funkin/menus/BetaWarningState.hx +++ b/source/funkin/menus/BetaWarningState.hx @@ -20,7 +20,7 @@ class BetaWarningState extends MusicBeatState { disclaimer = new FunkinText(16, titleAlphabet.y + titleAlphabet.height + 10, FlxG.width - 32, "", 32); disclaimer.alignment = CENTER; - disclaimer.applyMarkup("This engine is still in a beta state. That means *majority of the features* are either *buggy* or *non finished*. If you find any bug, please report them to the Codename Engine GitHub.\n\nPress ENTER to continue", + disclaimer.applyMarkup("This engine is still in a alpha state. That means *majority of the features* are either *buggy* or *non finished*. If you find any bug, please report them to the Codename Engine GitHub.\n\nPress ENTER to continue", [ new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFFF4444), "*") ]