From 997a016849e1dd360ba60be17225345d2bc1517b Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sun, 31 May 2020 19:54:35 +0000 Subject: [WebIDE] [Fortress Town] Magic Statue. Sketch the function which the Magic Statues will use. Make a TODO list. Note: The statues aren't around yet! --- npc/025-1/ctrl.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'npc') diff --git a/npc/025-1/ctrl.c b/npc/025-1/ctrl.c index 4833c6561..28ae146d5 100644 --- a/npc/025-1/ctrl.c +++ b/npc/025-1/ctrl.c @@ -10,6 +10,15 @@ // $FORTRESS_STATE = int // 0 - Locked // 1 - Unlocked +// $@FORTRESS_STATUE = bitmask +// 1,2,4,8... broken statues +// TODO: Use bg() - maybe with dummysd? +// TODO: Gate control during siege (not $FORTRESS_STATE). Gate monster. +// TODO: Spawn the monster general for each statue. Count their deaths. +// TODO: Spawn Monster Governor (and add it) once statue is broken. ::OnConquest +// TODO: Record nÂș of victories. Strengthen the governor. +// TODO: Provide a way to resume failed attempts. Move Phoenix inside. +// TODO: Testing // MAPFLAGS 025-1 mapflag zone MMO @@ -21,12 +30,49 @@ // FTCleanup(status) function script FTCleanup { $FORTRESS_STATE=getarg(0); - //enablenpc + // TODO: Magic Statues (FTStatue) + $@FORTRESS_STATUE=0; + //enablenpc "Magic Statue#F_1"; + //enablenpc "Magic Statue#F_2"; + //enablenpc "Magic Statue#F_4"; + //enablenpc "Magic Statue#F_8"; + //enablenpc "Magic Statue#F_16"; + // TODO: Gate + // TODO: ::OnConquest + // TODO: Kill stray monsters //killmonsterall return; } +// FTStatue(id) +function script FTStatue { + .@id=getarg(0); + mesn l("Magic Statue"); + mes l("There is a reading: The Mana Source. The Moubootaur. The Monster King."); + mes l("The war. The blood. The inspiration. The mana. The world. The defiance."); + mes l("The guard. The heir. The originals. The races. The later. The seal."); + mes l("The fragments. The war. The Terranite. AEGIS MAGNUS PROTECT SHIELD."); + next; + mesc l("It seems to be a defensive spell."); + if ($FORTRESS_STATE) + return; + + // Break the statues? + mesc l("Break the Statue?"), 1; + next; + if (askyesno() == ASK_YES) { + if ($@FORTRESS_STATUE & .@id) + return; + sc_start SC_STUN, 10000, 1; + //getmapxy(); + //areamonster(); + //mapannounce(); + //maybe spawn monster governor + $@FORTRESS_STATUE=$@FORTRESS_STATUE|.@id; + } + return; +} -- cgit v1.2.3-70-g09d2