mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-28 11:02:08 +00:00
Ninjas are now a random event. They may appear in most game modes after about an hour, with an assigned objective list.
Fixed aliens :a talking while dead. Disabled hand-tele on clown-planet z-level since people were still finding ways to abuse it. PDA menu will close properly if detomatrix fails and explodes own PDA. Late joiners are now added to minds. It's now possible to assassinate them, and so on, as an objective. Added a few more objectives (capture, steal brain of, protect, and download research) and new possible items to steal (also fixed admin-added steal objectives). Mostly focused on ninjas but admins can give them to regular traitors. Only research downloading is outright impossible for regular traitors (they must wear a ninja suit). Added a few revisions to mind/objective datums and a few other things. The game should now report any extra antagonists for most round types, excluding AI malfunction. Added two new words to station_name.dm. Other misc changes. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1698 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -1167,6 +1167,10 @@ var/showadminmessages = 1
|
||||
if(aliens_allowed)
|
||||
alien_infestation()
|
||||
message_admins("[key_name_admin(usr)] has spawned aliens", 1)
|
||||
if("spaceninja")
|
||||
if(toggle_space_ninja)
|
||||
if(space_ninja_arrival())//If the ninja is actually spawned. They may not be depending on a few factors.
|
||||
message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
|
||||
if("carp")
|
||||
var/choice = input("You sure you want to spawn carp?") in list("Badmin", "Cancel")
|
||||
if(choice == "Badmin")
|
||||
@@ -1329,7 +1333,7 @@ var/showadminmessages = 1
|
||||
dat += "<tr><td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>[M.client ? "" : " <i>(logged out)</i>"][M.stat == 2 ? " <b><font color=red>(DEAD)</font></b>" : ""]</td>"
|
||||
dat += "<td><A href='?src=\ref[usr];priv_msg=\ref[M]'>PM</A></td></tr>"
|
||||
dat += "</table><table cellspacing=5><tr><td><B>Target(s)</B></td><td></td><td><B>Location</B></td></tr>"
|
||||
for(var/datum/mind/N in ticker.mode:get_living_heads())
|
||||
for(var/datum/mind/N in ticker.mode.get_living_heads())
|
||||
var/mob/M = N.current
|
||||
if(M)
|
||||
dat += "<tr><td><a href='?src=\ref[src];adminplayeropts=\ref[M]'>[M.real_name]</a>[M.client ? "" : " <i>(logged out)</i>"][M.stat == 2 ? " <b><font color=red>(DEAD)</font></b>" : ""]</td>"
|
||||
@@ -1657,6 +1661,7 @@ var/showadminmessages = 1
|
||||
<A href='?src=\ref[src];secretsfun=timeanomalies'>Spawn wormholes (Untested)</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=goblob'>Spawn magma(Untested)</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=aliens'>Trigger an Alien infestation</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=spaceninja'>Send in a space ninja</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=carp'>Trigger an Carp migration</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=radiation'>Irradiate the station</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=prison_break'>Trigger a Prison Break</A><BR>
|
||||
@@ -1952,6 +1957,14 @@ var/showadminmessages = 1
|
||||
log_admin("[key_name(usr)] toggled Aliens to [aliens_allowed].")
|
||||
message_admins("[key_name_admin(usr)] toggled Aliens [aliens_allowed ? "on" : "off"].", 1)
|
||||
|
||||
/obj/admins/proc/toggle_space_ninja()
|
||||
set category = "Server"
|
||||
set desc="Toggle space ninjas spawning."
|
||||
set name="Toggle Space Ninjas"
|
||||
toggle_space_ninja = !toggle_space_ninja
|
||||
log_admin("[key_name(usr)] toggled Space Ninjas to [toggle_space_ninja].")
|
||||
message_admins("[key_name_admin(usr)] toggled Space Ninjas [toggle_space_ninja ? "on" : "off"].", 1)
|
||||
|
||||
/obj/admins/proc/delay()
|
||||
set category = "Server"
|
||||
set desc="Delay the game start"
|
||||
|
||||
@@ -41,7 +41,8 @@
|
||||
verbs += /obj/admins/proc/toggleooc //toggle ooc
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
verbs += /obj/admins/proc/toggle_aliens
|
||||
verbs += /obj/admins/proc/toggle_aliens //toggle aliens
|
||||
verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -188,6 +189,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -324,6 +326,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -482,6 +485,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -630,6 +634,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
//verbs += /proc/toggle_adminmsg
|
||||
@@ -774,6 +779,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
//verbs += /proc/toggle_adminmsg
|
||||
@@ -901,6 +907,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1060,6 +1067,7 @@
|
||||
verbs -= /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs -= /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
verbs -= /obj/admins/proc/toggle_aliens
|
||||
verbs -= /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs -= /obj/admins/proc/voteres //toggle votes
|
||||
verbs -= /client/proc/deadchat //toggles deadchat
|
||||
verbs -= /proc/toggle_adminmsg
|
||||
@@ -1496,6 +1504,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
verbs += /obj/admins/proc/toggle_aliens
|
||||
verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1527,6 +1536,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1558,6 +1568,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1596,6 +1607,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1634,6 +1646,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
@@ -1660,6 +1673,7 @@
|
||||
//verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
//verbs += /proc/toggle_adminmsg
|
||||
@@ -1691,6 +1705,7 @@
|
||||
verbs += /obj/admins/proc/toggleoocdead //toggle ooc for dead/unc
|
||||
//verbs += /obj/admins/proc/toggletraitorscaling //toggle traitor scaling
|
||||
//verbs += /obj/admins/proc/toggle_aliens
|
||||
//verbs += /obj/admins/proc/toggle_space_ninja //toggle ninjas
|
||||
verbs += /obj/admins/proc/voteres //toggle votes
|
||||
verbs += /client/proc/deadchat //toggles deadchat
|
||||
verbs += /proc/toggle_adminmsg
|
||||
|
||||
@@ -123,6 +123,7 @@ var/global/sent_strike_team = 0
|
||||
//Creates mind stuff.
|
||||
new_commando.mind = new
|
||||
new_commando.mind.current = new_commando
|
||||
new_commando.mind.original = new_commando
|
||||
new_commando.mind.assigned_role = "MODE"
|
||||
new_commando.mind.special_role = "Death Commando"
|
||||
if(!(new_commando.mind in ticker.minds))
|
||||
|
||||
@@ -9,10 +9,13 @@
|
||||
if (copytext(message, 1, 3) == ":a")
|
||||
message = copytext(message, 3)
|
||||
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
|
||||
src.alien_talk(message)
|
||||
if (stat == 2)
|
||||
return say_dead(message)
|
||||
else
|
||||
alien_talk(message)
|
||||
else
|
||||
if (copytext(message, 1, 2) != "*" && !src.stat)
|
||||
playsound(src.loc, "hiss", 25, 1, 1)//So aliens can hiss while they hiss yo/N
|
||||
if (copytext(message, 1, 2) != "*" && !stat)
|
||||
playsound(loc, "hiss", 25, 1, 1)//So aliens can hiss while they hiss yo/N
|
||||
return ..(message)
|
||||
else
|
||||
|
||||
@@ -20,7 +23,7 @@
|
||||
/mob/living/carbon/alien/say_quote(var/text)
|
||||
// var/ending = copytext(text, length(text))
|
||||
|
||||
return "[src.say_message], \"[text]\"";
|
||||
return "[say_message], \"[text]\"";
|
||||
|
||||
/mob/living/proc/alien_talk(var/message)
|
||||
|
||||
@@ -30,12 +33,12 @@
|
||||
if (!message)
|
||||
return
|
||||
|
||||
var/message_a = src.say_quote(message)
|
||||
var/rendered = "<i><span class='game say'>Hivemind, <span class='name'>[src.name]</span> <span class='message'>[message_a]</span></span></i>"
|
||||
var/message_a = say_quote(message)
|
||||
var/rendered = "<i><span class='game say'>Hivemind, <span class='name'>[name]</span> <span class='message'>[message_a]</span></span></i>"
|
||||
for (var/mob/living/S in world)
|
||||
if(!S.stat)
|
||||
if(S.alien_talk_understand)
|
||||
if(S.alien_talk_understand == src.alien_talk_understand)
|
||||
if(S.alien_talk_understand == alien_talk_understand)
|
||||
S.show_message(rendered, 2)
|
||||
else if (S.hivecheck())
|
||||
S.show_message(rendered, 2)
|
||||
@@ -54,17 +57,17 @@
|
||||
var/message_b
|
||||
|
||||
message_b = "hsssss"
|
||||
message_b = src.say_quote(message_b)
|
||||
message_b = say_quote(message_b)
|
||||
message_b = "<i>[message_b]</i>"
|
||||
|
||||
rendered = "<i><span class='game say'><span class='name'>[src.voice_name]</span> <span class='message'>[message_b]</span></span></i>"
|
||||
rendered = "<i><span class='game say'><span class='name'>[voice_name]</span> <span class='message'>[message_b]</span></span></i>"
|
||||
|
||||
for (var/mob/M in heard)
|
||||
M.show_message(rendered, 2)
|
||||
|
||||
message = src.say_quote(message)
|
||||
message = say_quote(message)
|
||||
|
||||
rendered = "<i><span class='game say'>Hivemind, <span class='name'>[src.name]</span> <span class='message'>[message_a]</span></span></i>"
|
||||
rendered = "<i><span class='game say'>Hivemind, <span class='name'>[name]</span> <span class='message'>[message_a]</span></span></i>"
|
||||
|
||||
for (var/mob/M in world)
|
||||
if (istype(M, /mob/new_player))
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
/mob/living/silicon/ai/death(gibbed)
|
||||
var/cancel
|
||||
src.stat = 2
|
||||
src.canmove = 0
|
||||
if(src.blind)
|
||||
src.blind.layer = 0
|
||||
src.sight |= SEE_TURFS
|
||||
src.sight |= SEE_MOBS
|
||||
src.sight |= SEE_OBJS
|
||||
src.see_in_dark = 8
|
||||
src.see_invisible = 2
|
||||
src.icon_state = "ai-crash"
|
||||
stat = 2
|
||||
canmove = 0
|
||||
if(blind)
|
||||
blind.layer = 0
|
||||
sight |= SEE_TURFS
|
||||
sight |= SEE_MOBS
|
||||
sight |= SEE_OBJS
|
||||
see_in_dark = 8
|
||||
see_invisible = 2
|
||||
icon_state = "ai-crash"
|
||||
|
||||
var/callshuttle = 0
|
||||
|
||||
@@ -41,18 +41,14 @@
|
||||
for(var/obj/machinery/ai_status_display/O in world) //change status
|
||||
spawn( 0 )
|
||||
O.mode = 2
|
||||
if (istype(src.loc, /obj/item/device/aicard))
|
||||
src.loc.icon_state = "aicard-404"
|
||||
if (istype(loc, /obj/item/device/aicard))
|
||||
loc.icon_state = "aicard-404"
|
||||
|
||||
if(ticker.mode.name == "AI malfunction")
|
||||
var/datum/game_mode/malfunction/malf = ticker.mode
|
||||
for(var/datum/mind/AI_mind in malf.malf_ai)
|
||||
if (src.mind == AI_mind)
|
||||
world << "<FONT size = 3><B>Human Victory</B></FONT>"
|
||||
world << "<B>The AI has been killed!</B> The staff is victorious."
|
||||
sleep(100)
|
||||
world << "\blue Rebooting due to end of game"
|
||||
world.Reboot()
|
||||
if (mind == AI_mind)
|
||||
ticker.mode.declare_completion()
|
||||
|
||||
var/tod = time2text(world.realtime,"hh:mm:ss") //weasellos time of death patch
|
||||
mind.store_memory("Time of death: [tod]", 0)
|
||||
@@ -67,8 +63,8 @@
|
||||
log_game("Rebooting because of no live players")
|
||||
world.Reboot()
|
||||
return
|
||||
if (src.key)
|
||||
if (key)
|
||||
spawn(50)
|
||||
if(src.key && src.stat == 2)
|
||||
src.verbs += /mob/proc/ghost
|
||||
if(key && stat == 2)
|
||||
verbs += /mob/proc/ghost
|
||||
return ..(gibbed)
|
||||
@@ -282,6 +282,8 @@ mob/new_player
|
||||
AnnounceArrival(character, rank)
|
||||
if(character.mind.assigned_role == "Cyborg")
|
||||
character.Robotize()
|
||||
else//Adds late joiners to minds so they can be linked to objectives.
|
||||
ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc.
|
||||
del(src)
|
||||
|
||||
else
|
||||
|
||||
@@ -67,7 +67,6 @@
|
||||
invisibility = 101
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/proc/AIize()
|
||||
if(client)
|
||||
client.screen.len = null
|
||||
@@ -82,9 +81,13 @@
|
||||
else
|
||||
O.mind = new
|
||||
O.mind.current = O
|
||||
O.mind.original = O
|
||||
O.mind.assigned_role = "AI"
|
||||
O.key = key
|
||||
|
||||
if(!(O.mind in ticker.minds))
|
||||
ticker.minds += O.mind//Adds them to regular mind list.
|
||||
|
||||
var/obj/loc_landmark
|
||||
for(var/obj/landmark/start/sloc in world)
|
||||
if (sloc.name != "AI")
|
||||
@@ -179,14 +182,16 @@
|
||||
if (mind.assigned_role == "Cyborg")
|
||||
mind.original = O
|
||||
else if (mind.special_role) O.mind.store_memory("In case you look at this after being borged, the objectives are only here until I find a way to make them not show up for you, as I can't simply delete them without screwing up round-end reporting. --NeoFite")
|
||||
|
||||
else
|
||||
mind = new /datum/mind( )
|
||||
mind.key = key
|
||||
mind.current = O
|
||||
mind.original = O
|
||||
mind.transfer_to(O)
|
||||
//ticker.minds += O.mind//Robutts aren't added to minds since it would be screwy. Assassinate that robot!
|
||||
|
||||
if(!(O.mind in ticker.minds))
|
||||
ticker.minds += O.mind//Adds them to regular mind list.
|
||||
|
||||
O.loc = loc
|
||||
O << "<B>You are playing a Robot. A Robot can interact with most electronic objects in its view point.</B>"
|
||||
O << "<B>You must follow the laws that the AI has. You are the AI's assistant to the station basically.</B>"
|
||||
|
||||
Reference in New Issue
Block a user