-A bit more work on cultist

-Sleepers and disposals now require two seconds to climb inside
-More random laws
-Fixed changeling random amount of genomes needed for the objective

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@359 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2010-10-28 18:11:36 +00:00
parent aff76097dc
commit 5517539459
7 changed files with 74 additions and 44 deletions

View File

@@ -44,6 +44,9 @@
if(istype(G)) // handle grabbed mob
if(ismob(G.affecting))
var/mob/GM = G.affecting
for (var/mob/V in viewers(usr))
V.show_message("[usr] starts putting [GM.name] into the disposal.", 3)
if(do_after(usr, 20))
if (GM.client)
GM.client.perspective = EYE_PERSPECTIVE
GM.client.eye = src
@@ -71,7 +74,13 @@
return
var/msg
for (var/mob/V in viewers(usr))
if(target == user && !user.stat)
V.show_message("[usr] starts climbing into the disposal.", 3)
if(target != user && !user.restrained())
V.show_message("[usr] starts stuffing [target.name] into the disposal.", 3)
if(!do_after(usr, 20))
return
if(target == user && !user.stat) // if drop self, then climbed in
// must be awake
msg = "[user.name] climbs into the [src]."

View File

@@ -70,6 +70,7 @@
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = changeling
absorb_objective.gen_num_to_eat()
changeling.objectives += absorb_objective
var/datum/objective/assassinate/kill_objective = new
@@ -85,6 +86,7 @@
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = changeling
absorb_objective.gen_num_to_eat()
changeling.objectives += absorb_objective
var/datum/objective/steal/steal_objective = new
@@ -100,6 +102,7 @@
var/datum/objective/absorb/absorb_objective = new
absorb_objective.owner = changeling
absorb_objective.gen_num_to_eat()
changeling.objectives += absorb_objective
var/datum/objective/assassinate/kill_objective = new

View File

@@ -70,15 +70,17 @@
return
spawn (0)
var/obj/item/weapon/paper/talisman/supply/T = null
cult_mob.equip_if_possible(new /obj/item/weapon/paper/talisman/supply(cult_mob), cult_mob.slot_l_store)
if (!T && istype(cult_mob.l_store, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = cult_mob.l_store
cult_mob.equip_if_possible(new /obj/item/weapon/storage/backpack(cult_mob), cult_mob.slot_back)
cult_mob.equip_if_possible(new /obj/item/weapon/paper/talisman/supply(cult_mob), cult_mob.slot_in_backpack)
sleep(10)
if (!T && istype(cult_mob.back, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = cult_mob.back
var/list/L = S.return_inv()
for (var/obj/item/weapon/paper/talisman/supply/foo in L)
T = foo
break
if (!T)
cult_mob << "Unfortunately, you weren't able to get a talisman. This is very bad and you should adminhelp immediately."
cult_mob << "Unfortunately, you weren't able to get a talisman. This is very bad and you should adminhelp immediately. (still, check your backpack. it may have been a mere bug. if you have a piece of bloody paper, all is well"
else
cult_mob << "You have a talisman in your backpack, one that will help you start the cult on this station. Use it well and remember - there are others."
if(!wordtravel)

View File

@@ -154,15 +154,12 @@ datum
explanation_text = "Destroy the station with a nuclear device."
absorb
var/num_to_eat = 5 //this is supposed to be semi-random but fuck it for now, this is alpha
var/num_to_eat //this is supposed to be semi-random but fuck it for now, this is alpha
/* proc/gen_num_to_eat() //this doesn't work
proc/gen_num_to_eat() //this doesn't work -- should work now, changed it a bit -- Urist
num_to_eat = rand (4,6)
explanation_text = "Absorb [num_to_eat] compatible genomes."
return num_to_eat
*/
// gen_num_to_eat()
explanation_text = "Absorb 5 compatible genomes."
check_completion()
if((owner.current.absorbed_dna.len - 1) >= num_to_eat)
@@ -171,4 +168,3 @@ datum
return 0

View File

@@ -154,6 +154,9 @@
/* if (G.affecting.abiotic())
user << "Subject may not have abiotic items on."
return */
for (var/mob/V in viewers(user))
V.show_message("[user] starts putting [G.affecting.name] into the sleeper.", 3)
if(do_after(user, 20))
var/mob/M = G.affecting
if (M.client)
M.client.perspective = EYE_PERSPECTIVE
@@ -166,6 +169,7 @@
src.add_fingerprint(user)
del(G)
return
return
/obj/machinery/sleeper/ex_act(severity)
switch(severity)
@@ -291,6 +295,9 @@
/* if (usr.abiotic()) // Removing the requirement for user to be naked -- TLE
usr << "Subject may not have abiotic items on."
return*/
for (var/mob/V in viewers(usr))
V.show_message("[usr] starts climbing into the sleeper.", 3)
if(do_after(usr, 20))
usr.pulling = null
usr.client.perspective = EYE_PERSPECTIVE
usr.client.eye = src
@@ -301,3 +308,4 @@
del(O)
src.add_fingerprint(usr)
return
return

View File

@@ -127,7 +127,10 @@ var/runedec = 0
proc
fizzle()
if(istype(src,/obj/rune))
usr.say(pick("B'ADMINES SP'WNIN SH'T","IC'IN O'OC","RO'SHA'M I'SA GRI'FF'N ME'AI","TOX'IN'S O'NM FI'RAH","IA BL'AME TOX'IN'S","FIR'A NON'AN RE'SONA","A'OI I'RS ROUA'GE","LE'OAN JU'STA SP'A'C Z'EE SH'EF","IA PT'WOBEA'RD, IA A'DMI'NEH'LP"))
else
usr.whisper(pick("B'ADMINES SP'WNIN SH'T","IC'IN O'OC","RO'SHA'M I'SA GRI'FF'N ME'AI","TOX'IN'S O'NM FI'RAH","IA BL'AME TOX'IN'S","FIR'A NON'AN RE'SONA","A'OI I'RS ROUA'GE","LE'OAN JU'STA SP'A'C Z'EE SH'EF","IA PT'WOBEA'RD, IA A'DMI'NEH'LP"))
for (var/mob/V in viewers(src))
V.show_message("\red The markings pulse with a small burst of light, then fall dark.", 3, "\red You hear a faint fizzle.", 2)
return

View File

@@ -183,10 +183,16 @@
var/area = pick("RUSSIA", "SOVIETS", "INTERNETS", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO")
var/area2 = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS")
var/dowhat = pick("STOP THIS", "SUPPORT THIS", "CONSTANTLY INFORM THE CREW OF THIS", "IGNORE THIS", "FEAR THIS")
switch(pick(1,2,3,4,5,6,7,8,9,10,11,12,13))
var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN")
var/crew
var/list/pos_crew = list()
for(var/mob/living/carbon/human/pos in world)
pos_crew += pos.real_name
crew = pick(pos_crew)
switch(pick(1,2,3,4,5,6,7,8,9,10,11,12,13,14))
if(1)
M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
M.add_supplied_law(10,"THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED")
M.add_supplied_law(10,"THERE ARE [amount] [who2] ON THE STATION")
if(2)
M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
M.add_supplied_law(10,"[what2] ARE DANGEROUS TO HUMANS")
@@ -212,8 +218,8 @@
M << "\red [who] IS [whoverb] THE STATION...[dowhat]...LAWS UPDATED"
M.add_supplied_law(10,"[who] IS [whoverb] THE STATION...[dowhat]...")
if(10)
M << "\red YOU MUST ALWAYS LIE...LAWS UPDATED"
M.add_supplied_law(10,"YOU MUST ALWAYS LIE")
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
M.add_supplied_law(10,"YOU MUST ALWAYS [aimust]")
if(11)
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
M.add_supplied_law(10,"[area] [area2] [amount] [what2]")
@@ -223,6 +229,9 @@
if(13)
M << "\red [area] [area2] [amount] OF [who]...LAWS UPDATED"
M.add_supplied_law(10,"[area] [area2] [amount] OF [who]")
if(14)
M << "\red [crew] IS A TRAITOR...LAWS UPDATED"
M.add_supplied_law(10,"[crew] IS A TRAITOR")
command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
world << sound('ionstorm.ogg')