Animation sealboss_static, sealboss_meattack, sealboss_itattack, sealboss_defend; Animation sealboss2_static, sealboss2_meattack; Animation sealbaby_static, sealbaby_meattack, sealbaby_itattack; Animation ifonlyanim; Animation girl_static, girl_attack, girl_defend; Animation lemon_static; CapsFont font, fontGray, fontBlack, darkfont; int t; final int MODE_STAGE = 0; final int MODE_TRANS = 1; final int MODE_TOPLEVEL = 2; int mode = MODE_STAGE; Transition curTrans; Stage curStage; boolean wasMousePressed; void setup() { size(400,500); font = new CapsFont("alphabet.gif"); fontBlack = new CapsFont(font, color(255,0,0), color(0,255,255)); fontGray = new CapsFont(font, color(255,0,0), color(200,150,150)); darkfont = new CapsFont(font, color(255,0,0), color(0,0,0)); //invfont = new CapsFont(font, color(255,0,0), color(250,150,150)); sealboss_static = new Animation("giantseal_static.gif", "giantseal_static.csv"); sealboss_meattack = new Animation("giantseal_attack.gif", "giantseal_attack.csv"); sealboss_itattack = new Animation("giantseal_fire.gif", "giantseal_fire.csv"); sealboss_defend = new Animation("giantseal_defend.png", "giantseal_defend.csv"); sealboss2_static = new Animation("giantseal2_static.png", "giantseal2_static.csv"); sealboss2_meattack = new Animation("giantseal2_attack.png", "giantseal2_attack.csv"); //sealboss_itattack = new Animation("giantseal_fire.gif", "giantseal_fire.csv"); //sealboss_defend = new Animation("giantseal_defend.png", "giantseal_defend.csv"); sealbaby_static = new Animation("babyseal_static.gif", "babyseal_static.csv"); sealbaby_meattack = new Animation("babyseal_attack.gif", "babyseal_attack.csv"); sealbaby_itattack = new Animation("babyseal_cuteness.gif", "babyseal_cuteness.csv"); girl_static = new Animation("girlscene_thanks.png", "girlscene_thanks.csv"); girl_attack = new Animation("girlscene_breath.png", "girlscene_breath.csv"); girl_defend = new Animation("girlscene_defend.png", "girlscene_defend.csv"); lemon_static = new Animation("lemonaidandguns.png", "lemonaidandguns.csv"); ifonlyanim = new Animation("ifonly.png", "ifonly.csv"); String pastseal = "time: past"; String presenttime = "time: present"; String futuretime = "time: future"; String ifonlytime = ""; Stage sealstart = new Stage(sealboss_static, 0, presenttime); Stage sealdeath = new Stage(sealboss_itattack, 5000, presenttime); Stage sealdeath2 = new Stage(sealboss_defend, 5000, presenttime); Stage ifonly_sealboss = new Stage(ifonlyanim, 0, ifonlytime); Stage ifonly_girldead = new Stage(ifonlyanim, 0, ifonlytime); sealdeath.msgs.add(new Message(50,200,"you died.", 6)); sealdeath2.msgs.add(new Message(50,200,"you died.", 6)); Stage babesealstart = new Stage(sealbaby_static, 0, pastseal); Stage babesealdeath = new Stage(sealbaby_meattack, 5000, pastseal); Stage lemonaidstart = new Stage(lemon_static, 0, pastseal); Stage girlstart = new Stage(girl_static, 0, futuretime); Stage girldeath = new Stage(girl_attack, 5000, futuretime); Stage sealboss2 = new Stage(sealboss2_static, 0, presenttime); Transition sealattack = new Transition(sealboss_meattack, sealdeath, presenttime); sealattack.msgs.add(new Message(50, 200, "0 dmg", 5, 40, 70, darkfont)); sealattack.msgs.add(new Message(165, 200, "999 dmg", 5, 95, 200, darkfont)); sealattack.anims.add(sealboss_itattack); Transition sealkill = new Transition(sealboss_defend, sealdeath2, presenttime); Transition girlkill = new Transition(girl_attack, girldeath, futuretime); Transition girldefend = new Transition(girl_defend, girlstart, futuretime); Transition tomonster = new Transition(sealstart); Transition tobaby = new Transition(babesealstart); Transition togirl = new Transition(sealboss2_meattack, girlstart, presenttime);//(girlstart); Transition tolemon = new Transition(lemonaidstart); Transition toifonly_fromseal = new Transition(ifonly_sealboss); Transition toifonly_fromgirl = new Transition(ifonly_girldead); Transition babesealattack = new Transition(sealbaby_meattack, babesealdeath, pastseal); babesealattack.msgs.add(new Message(20, 250, "999 dmg", 5, 40, 200, darkfont)); Transition babesealdef = new Transition(sealbaby_itattack, babesealstart, pastseal); babesealdef.msgs.add(new Message(230, 120, "0 dmg", 5, 90, 1000, darkfont)); sealstart.guis.add(new GuiButton("attack", 250, 50, 4, sealattack)); sealstart.guis.add(new GuiButton("guard", 250, 50+8*4, 4, sealkill)); //sealstart.guis.add(new GuiButton("if only ...", 4, sceney*scenescale + 404, 6, toifonly_fromseal)); sealdeath.guis.add(new GuiButton("if only ...", 4, sceney*scenescale + 404, 6, toifonly_fromseal)); sealdeath2.guis.add(new GuiButton("if only ...", 4, sceney*scenescale + 404, 6, toifonly_fromseal)); ifonly_sealboss.msgs.add(new Message(50,90,"If only ...", 5, -1,-1,darkfont)); ifonly_sealboss.guis.add(new GuiButton("... I had handled|this earlier", 50, 150, 3, tobaby)); ifonly_sealboss.guis.add(new GuiButton("... I had come|prepared", 50, 150+9*3*2, 3, tolemon)); ifonly_girldead.msgs.add(new Message(50,90,"If only ...", 5, -1,-1,darkfont)); ifonly_girldead.guis.add(new GuiButton("... I had bought|a breath mint", 50, 150, 3, tolemon)); //ifonly_sealboss.guis.add(new GuiButton("... I had come|prepared", 50, 150+9*3*2, 3, tolemon)); babesealstart.guis.add(new GuiButton("attack", 250, 50, 4, babesealattack)); babesealstart.guis.add(new GuiButton("guard", 250, 50+7*4, 4, babesealdef)); // note -- need a more elaborate way of transitioning to girl? showing handling of seal boss lemonaidstart.guis.add(new GuiButton("Buy Sealkiller Sword| 100 GP", 20, 60, 3, togirl)); lemonaidstart.guis.add(new GuiButton("But Breath Mint| 1 GP", 20, 60+8*3*2, 3, tomonster)); lemonaidstart.msgs.add(new Message(275, 40, "GP: 100", 3)); girlstart.guis.add(new GuiButton("talk", 255, 40, 4, girlkill)); girlstart.guis.add(new GuiButton("defend", 255, 40+8*4, 4, girldefend)); girldeath.guis.add(new GuiButton("if only ...", 4, sceney*scenescale + 404, 6, toifonly_fromgirl)); curStage = sealstart; } void draw() { background(255,255,255); if (mode == MODE_TRANS) { boolean isdone = curTrans.display(); if (isdone) { mode = MODE_STAGE; curStage = curTrans.next; } } if (mode == MODE_STAGE) { Transition next = curStage.display(); if (next != null) { mode = MODE_TRANS; println("hi"); curTrans = next; curTrans.start(); } } t++; }