Skip to content

Commit

Permalink
merging control continues
Browse files Browse the repository at this point in the history
  • Loading branch information
chosencharacters committed Nov 30, 2024
1 parent a048b83 commit c99f2fb
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 28 deletions.
11 changes: 8 additions & 3 deletions source/states/substates/SheetSubstate.hx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import ui.sheets.StickerSelectSheet;
class SheetSubstate extends flixel.FlxSubState
{
var sheet_ui:BaseSelectSheet;

public static var instance:SheetSubstate;

override public function new(sheet_ui:BaseSelectSheet)
Expand All @@ -27,9 +28,13 @@ class SheetSubstate extends flixel.FlxSubState
override function update(elapsed:Float)
{
super.update(elapsed);
if (Ctrl.jaction[1] && sheet_ui.canSelect) {
if (Ctrl.jinteract[1] && sheet_ui.canSelect)
{
sheet_ui.transOut();
new FlxTimer().start(1.2, function(tmr:FlxTimer) {close();});
new FlxTimer().start(1.2, function(tmr:FlxTimer)
{
close();
});
}
}

Expand All @@ -45,4 +50,4 @@ class SheetSubstate extends flixel.FlxSubState
sheet_ui.kill();
super.close();
}
}
}
79 changes: 54 additions & 25 deletions source/ui/sheets/BaseSelectSheet.hx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class BaseSelectSheet extends FlxGroupExt
var effectSheet:FlxEffectSprite;
var description:FlxText;
var title:FlxText;

public var selector:FlxSprite;
public var backTab:FlxSpriteExt;

Expand All @@ -35,6 +36,7 @@ class BaseSelectSheet extends FlxGroupExt
final descGroup:FlxTypedSpriteGroup<FlxSprite> = new FlxTypedSpriteGroup<FlxSprite>(-440);

var graphicSheet:Bool = false;

public var canSelect:Bool = false;

public var seen:Array<String> = [];
Expand All @@ -50,7 +52,8 @@ class BaseSelectSheet extends FlxGroupExt

this.type = type;

if(newState) FlxG.state.openSubState(new SheetSubstate(this));
if (newState)
FlxG.state.openSubState(new SheetSubstate(this));

add(descGroup);

Expand Down Expand Up @@ -120,22 +123,27 @@ class BaseSelectSheet extends FlxGroupExt
sprite.angle = identity.angle;
characterSprites.add(sprite);
daNames.push(identity.name);
if(!seen.contains(identity.name)) {
if (!seen.contains(identity.name))
{
final newFrame:FlxSpriteExt = new FlxSpriteExt(sprite_position.x + (sprite.width / 2) - 141, sprite_position.y + (sprite.height / 2) - 163);
newFrame.loadAllFromAnimationSet('new-sticker-overlay');
newFrame.ID = i;
notSeenSprites.add(newFrame);
@:privateAccess
newFrame.anim('idle');
new FlxTimer().start(4.3, function(tmr:FlxTimer) {
if(!newFrame.alive) return;
new FlxTimer().start(4.3, function(tmr:FlxTimer)
{
if (!newFrame.alive)
return;
newFrame.anim('shine');
new FlxTimer().start(0.5, function(tmr:FlxTimer) {newFrame.anim('idle');});
new FlxTimer().start(0.5, function(tmr:FlxTimer)
{
newFrame.anim('idle');
});
}, 0);
}
}

trace("sheet exists");
if (characterSprites.members.length != 0)
{
characterSpritesArray.push(characterSprites);
Expand Down Expand Up @@ -167,7 +175,8 @@ class BaseSelectSheet extends FlxGroupExt
daMem.scrollFactor.set(0, 0);
FlxTween.tween(daMem, {y: daMem.y - 1300}, 0.8, {ease: FlxEase.cubeInOut});
});
new FlxTimer().start(0.8, function(tmr:FlxTimer) {
new FlxTimer().start(0.8, function(tmr:FlxTimer)
{
canSelect = true;
FlxTween.tween(descGroup, {x: 0}, 0.5, {ease: FlxEase.cubeOut});
});
Expand All @@ -185,7 +194,8 @@ class BaseSelectSheet extends FlxGroupExt

function control()
{
if(!canSelect) return;
if (!canSelect)
return;
for (i in 0...characterSpritesArray[current_sheet].length)
{
// TODO: make this mobile-friendly
Expand All @@ -200,19 +210,27 @@ class BaseSelectSheet extends FlxGroupExt
current_sheet = current_sheet + 1;
if (Ctrl.cdown[1])
current_sheet = current_sheet - 1;
if(FlxG.mouse.overlaps(backTab)) {
if(backTab.y != 110)
if (FlxG.mouse.overlaps(backTab))
{
if (backTab.y != 110)
backTab.y = 110;
if(FlxG.mouse.justPressed) {
if(backTab.scale.x != 0.8) backTab.scale.set(0.8, 0.8);
if (FlxG.mouse.justPressed)
{
if (backTab.scale.x != 0.8)
backTab.scale.set(0.8, 0.8);
SheetSubstate.instance.reload(type == COSTUME ? "STICKER" : "COSTUME");
} else if (!FlxG.mouse.pressed && backTab.scale.x != 1.1) backTab.scale.set(1.1, 1.1);
} else if (backTab.scale.x != 1) backTab.scale.set(1, 1);
}
else if (!FlxG.mouse.pressed && backTab.scale.x != 1.1)
backTab.scale.set(1.1, 1.1);
}
else if (backTab.scale.x != 1)
backTab.scale.set(1, 1);
}

function set_current_sheet(val:Int):Int
{
if (characterSpritesArray.length > 1) {
if (characterSpritesArray.length > 1)
{
characterSpritesArray[current_sheet].kill();
notSeenGroup[current_sheet].kill();
}
Expand All @@ -228,6 +246,7 @@ class BaseSelectSheet extends FlxGroupExt

return current_sheet;
}

function set_current_selection(val:Int):Int
{
// characterSpritesArray[current_sheet].members[current_selection].scale.set(1, 1);
Expand All @@ -239,9 +258,12 @@ class BaseSelectSheet extends FlxGroupExt
else
current_selection = val;

if(notSeenGroup[current_sheet].members.length > 0) {
final matches:Array<FlxSpriteExt> = notSeenGroup[current_sheet].members.filter(i -> i.ID == characterSpritesArray[current_sheet].members[current_selection].ID);
if(matches.length > 0) {
if (notSeenGroup[current_sheet].members.length > 0)
{
final matches:Array<FlxSpriteExt> = notSeenGroup[current_sheet].members.filter(i ->
i.ID == characterSpritesArray[current_sheet].members[current_selection].ID);
if (matches.length > 0)
{
seen.push(characterNames[current_sheet][current_selection]);
notSeenGroup[current_sheet].members.remove(matches[0]);
}
Expand All @@ -256,7 +278,7 @@ class BaseSelectSheet extends FlxGroupExt
graphicSheet = sheet_collection.sheets[current_sheet].graphic != null ? true : false;
if (graphicSheet)
stickerSheetBase.loadGraphic(Paths.get(sheet_collection.sheets[current_sheet].graphic + '.png'));
else
else
stickerSheetBase.makeGraphic(1430, 845, FlxColor.BLACK);

characterSpritesArray[current_sheet].revive();
Expand All @@ -272,23 +294,30 @@ class BaseSelectSheet extends FlxGroupExt
final sticker:StickerDef = data.JsonData.get_sticker(characterNames[current_sheet][current_selection]);
title.text = sticker.properName.toUpperCase();
description.text = (sticker.desc != null ? (sticker.desc + ' ') : '') + 'Created by ${sticker.artist != null ? sticker.artist : "Unknown"}';
//selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 177);
// selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 177);
}
else
{
final costume:CostumeDef = data.JsonData.get_costume(characterNames[current_sheet][current_selection]);
title.text = costume.display.toUpperCase();
description.text = (costume.desc != null ? costume.desc : '');
//selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x - 110, characterSpritesArray[current_sheet].members[current_selection].y - 80);
// selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x - 110, characterSpritesArray[current_sheet].members[current_selection].y - 80);
}
selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 167);
selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x
+ (characterSpritesArray[current_sheet].members[current_selection].width / 2)
- 175,
characterSpritesArray[current_sheet].members[current_selection].y
+ (characterSpritesArray[current_sheet].members[current_selection].height / 2)
- 167);
// characterSpritesArray[current_sheet].members[current_selection].scale.set(1.1, 1.1);
}

public function transOut() {
public function transOut()
{
canSelect = false;
FlxTween.tween(descGroup, {x: -440}, 0.5, {ease: FlxEase.quintIn});
new FlxTimer().start(0.3, function(tmr:FlxTimer) {
new FlxTimer().start(0.3, function(tmr:FlxTimer)
{
members.for_all_members((member:FlxBasic) ->
{
final daMem:FlxObject = cast(member, FlxObject);
Expand All @@ -302,4 +331,4 @@ enum abstract SheetType(String) from String to String
{
final COSTUME;
final STICKER;
}
}

0 comments on commit c99f2fb

Please sign in to comment.