| @@ -88,6 +88,11 @@ export const Newtown = (): Place => { | |||||
| "Town street north of the Town square" | "Town street north of the Town square" | ||||
| ) | ) | ||||
| const northTownShop = new Place( | |||||
| new ProperNoun("North Town Shop"), | |||||
| "A shop for your impulsive buying needs" | |||||
| ) | |||||
| const eastTownStreet = new Place( | const eastTownStreet = new Place( | ||||
| new ProperNoun("East Town Street"), | new ProperNoun("East Town Street"), | ||||
| "Town street east of the Town square" | "Town street east of the Town square" | ||||
| @@ -187,6 +192,58 @@ export const Newtown = (): Place => { | |||||
| ) | ) | ||||
| ) | ) | ||||
| townSquare.choices.push( | |||||
| new Choice( | |||||
| "Eat someone", | |||||
| "Slurp", | |||||
| (world, executor) => { | |||||
| const snack = new Human(new ProperNoun(["Snack", "Treat", "Tasty", "Dinner", "Appetizer"][Math.floor(Math.random() * 5)]), [MalePronouns, FemalePronouns, TheyPronouns][Math.floor(Math.random() * 3)]) | |||||
| snack.applyEffect(new SurrenderEffect()) | |||||
| const options = executor.validActions(snack).filter(action => action instanceof DevourAction) | |||||
| return options[Math.floor(options.length * Math.random())].execute(executor, snack) | |||||
| } | |||||
| ) | |||||
| ) | |||||
| townSquare.choices.push( | |||||
| new Choice( | |||||
| "Fight someone", | |||||
| "Ow", | |||||
| (world) => { | |||||
| const enemy = new Human(new ProperNoun("Nerd"), TheyPronouns) | |||||
| enemy.side = Side.Monsters | |||||
| enemy.ai = new VoreAI(enemy) | |||||
| enemy.equip(new Items.Sword(), Items.EquipmentSlot.MainHand) | |||||
| enemy.addPerk(new DeliciousPerk()) | |||||
| const encounter = new Encounter( | |||||
| { | |||||
| name: "Fight some tasty nerd", | |||||
| intro: () => new LogLine(`You find some nerd to fight.`) | |||||
| }, | |||||
| [world.player, enemy].concat(world.party) | |||||
| ) | |||||
| world.encounter = encounter | |||||
| return nilLog | |||||
| } | |||||
| ) | |||||
| ) | |||||
| townSquare.choices.push( | |||||
| new Choice( | |||||
| "Recruit someone", | |||||
| "Not ow", | |||||
| (world) => { | |||||
| const ally = new Human(new ProperNoun("Ally"), TheyPronouns) | |||||
| ally.side = Side.Heroes | |||||
| ally.ai = new VoreAI(ally) | |||||
| ally.equip(new Items.Sword(), Items.EquipmentSlot.MainHand) | |||||
| world.party.push(ally) | |||||
| return new LogLine(`You recruit a nerd`) | |||||
| } | |||||
| ) | |||||
| ) | |||||
| debug.choices.push( | debug.choices.push( | ||||
| new Choice( | new Choice( | ||||
| "Cut stats", | "Cut stats", | ||||