Updates: The Reckoning

* Carp are delicious! Slice them open with a kitchen knife, and you get carp fillets.
* Carp gib when hit by meteors. WHen gibbed or exploded, they leave behind meat as well. Pulse rifles can also gib them.
* Fixed lizardman emotes.
* New cake sprites by matty406 (carrot cake my edit of his cheese and regular cake).
* Shuttle can be called in Malf and Revolution modes. HOwever, it'll automatically return after a random duration. The message when the shuttle is recalled due to this is identical to when it's recalled by a player.
* Shuttle cannot be called while it is returning to CentCom.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@672 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
morikou@gmail.com
2010-12-19 22:29:05 +00:00
parent c1f1b6365d
commit 799c2dcd36
8 changed files with 102 additions and 44 deletions
+8
View File
@@ -1549,6 +1549,14 @@
..()
reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
name = "carp fillet"
desc = "A fillet of spess carp meat"
icon_state = "fishfillet"
New()
..()
reagents.add_reagent("nutriment", 3)
/obj/item/weapon/reagent_containers/food/snacks/xenomeat
name = "meat"
desc = "A slab of meat"
+6
View File
@@ -16,6 +16,7 @@ datum/shuttle_controller
endtime // timeofday that shuttle arrives
//timeleft = 360 //600
fake_recall = 0 //Used in rounds to prevent "ON NOES, IT MUST [INSERT ROUND] BECAUSE SHUTTLE CAN'T BE CALLED"
// call the shuttle
@@ -85,6 +86,11 @@ datum/shuttle_controller
return 0
else if((fake_recall != 0) && (timeleft <= fake_recall))
recall()
return 0
else if(timeleft <= 0)
location = 1
var/area/start_location = locate(/area/shuttle/escape/centcom)
+18 -4
View File
@@ -388,18 +388,32 @@
/proc/call_shuttle_proc(var/mob/user)
if ((!( ticker ) || emergency_shuttle.location))
return
if(world.time < 6000) // Ten minute grace period to let the game get going without lolmetagaming. -- TLE
user << "The emergency shuttle is refueling. Please wait another [(6000-world.time)/10] seconds before trying again."
return
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
user << "Centcom will not allow the shuttle to be called."
if(sent_strike_team == 1)
user << "Consider all contracts terminated."
if(emergency_shuttle.direction == -1)
user << "Shuttle may not be called while returning to CentCom."
return
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
//user << "Centcom will not allow the shuttle to be called." //Old code
//if(sent_strike_team == 1)
// user << "Consider all contracts terminated."
//return
if(sent_strike_team == 1)
user << "Centcom will not allow the shuttle to be called. Consider all contracts terminated."
return
//New version pretends to call the shuttle but cause the shuttle to return after a random duration.
emergency_shuttle.fake_recall = rand(300,500)
if(sent_strike_team == 1)
if(ticker.mode.name != "revolution" || ticker.mode.name != "AI malfunction")
user << "Centcom will not allow the shuttle to be called. Consider all contracts terminated."
return
// if(ticker.mode.name == "blob" || ticker.mode.name == "Corporate Restructuring" || ticker.mode.name == "sandbox")
// user << "Under directive 7-10, [station_name()] is quarantined until further notice."
// return
+61 -38
View File
@@ -53,23 +53,45 @@
usr << text("\red <B>Looks fierce!</B>")
return
proc/gib() //Will move this to a generic livestock proc once I get some gib animations for the others -- Darem.
var/atom/movable/overlay/animation = null
src.icon = null
src.invisibility = 101
animation = new(src.loc)
animation.icon = 'livestock.dmi'
animation.icon_state = "blank"
animation.master = src
if(istype(src, /obj/livestock/spesscarp)) flick("spesscarp_g", animation)
sleep(11)
src.death(1)
del(animation)
return
attack_hand(user as mob)
return
attackby(obj/item/weapon/W as obj, mob/user as mob)
switch(W.damtype)
if("fire")
src.health -= W.force * 0.75
if("brute")
src.health -= W.force * 0.5
else
if (src.health <= 0)
src.death()
else if (W.force)
if(src.aggressive && (ishuman(user) || ismonkey(user) || isrobot(user)))
src.target = user
src.state = 1
if(src.alive)
switch(W.damtype)
if("fire")
src.health -= W.force * 0.75
if("brute")
src.health -= W.force * 0.5
else
if (src.health <= 0)
src.death()
else if (W.force)
if(src.aggressive && (ishuman(user) || ismonkey(user) || isrobot(user)))
src.target = user
src.state = 1
if(prob(10)) new /obj/decal/cleanable/blood(src.loc)
else if(istype(W, /obj/item/weapon/kitchenknife))
user << "\red You slice open the [src.name]!"
for (var/obj/item/I in src)
I.loc = src.loc
del(src)
return
..()
bullet_act(flag, A as obj)
@@ -85,9 +107,10 @@
if(PROJECTILE_PULSE)
src.health -= 25
if(prob(30))
src.ex_act(1)
src.gib()
if(PROJECTILE_BOLT)
src.health -= 5
if(prob(10)) new /obj/decal/cleanable/blood(src.loc)
healthcheck()
ex_act(severity)
@@ -100,7 +123,7 @@
return
meteorhit()
src.death()
src.gib()
return
blob_act()
@@ -178,9 +201,9 @@
for (var/mob/living/carbon/C in range(view,src.loc)) //Checks all carbon creatures in range.
if (!aggressive) //Is this animal angry? If not, what the fuck are you doing?
break
if (C.stat == 2 || !can_see(src,C,view_range)) //Can it see it at all or is the target a ghost?
if (C.stat == 2 || !can_see(src,C,view_range) || (!can_see(src,C,(view_range / 2)) && C.invisibility >= 1))
continue
if(C:stunned || C:paralysis || C:weakened) //An easy target, bwahaha!
if(C:stunned || C:paralysis || C:weakened)
target = C
break
if(C:health < last_health) //Selects the target but does NOT break the FOR loop.
@@ -281,7 +304,7 @@
proc/death(var/messy = 0)
if(!alive) return
src.alive = 0
alive = 0
density = 0
icon_state = "[initial(icon_state)]_d"
set_null()
@@ -289,13 +312,20 @@
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src]'s eyes glass over!</B>", 1)
else
for (var/obj/item/I in src)
if(!istype(I, /obj/item/weapon/card)) I.loc = src.loc
del(src)
proc/healthcheck()
if (src.health <= 0)
src.death()
/obj/livestock/chick
//////////////////////////////////////////////////////////////////////////////
/////////////////////////Specific Creature Entries////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/*/obj/livestock/chick
name = "Chick"
desc = "A harmless little baby chicken, it's so cute!"
icon_state = "chick"
@@ -316,6 +346,7 @@
if(V.mind.special_role == "wizard")
for(var/mob/H in hearers(src, null))
H << "\green Chick clucks in an angry manner at [V.name]."
*/
/obj/livestock/spesscarp
name = "Spess Carp"
@@ -329,6 +360,11 @@
patience = 25
view_range = 8
var/stun_chance = 5 // determines the prob of a stun
New()
..()
new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/carpmeat(src)
special_attack()
if (prob(stun_chance))
target:stunned = max(target:stunned, (strength / 2))
@@ -341,6 +377,7 @@
stun_chance = 40
intelligence = "Assistant"
/* Commented out because of filthy xeno-lovers.
/obj/livestock/cow
name = "Pigmy Cow"
desc = "That's not my cow!"
@@ -351,6 +388,11 @@
cycle_pause = 20
patience = 50
view_range = 10
New()
..()
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
special_extra()
if(prob(20))
for(var/mob/O in hearers(src, null))
@@ -368,23 +410,4 @@
usr << text("\red The cow looks uncomfortable.")
if(81 to INFINITY)
usr << text("\red The cow looks as if it could burst at any minute!")
proc/gib() //Will move this to a generic livestock proc once I get some gib animations for the others -- Darem.
var/atom/movable/overlay/animation = null
src.icon = null
src.invisibility = 101
animation = new(src.loc)
animation.icon = 'livestock.dmi'
animation.icon_state = "blank"
animation.master = src
flick("cow_g", animation)
new /obj/decal/cleanable/blood(src)
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
new /obj/item/weapon/reagent_containers/food/snacks/monkeymeat(src)
for (var/obj/I in src) //Not the best way to do this but it allows for pinata style animals as well.
I.loc = src.loc
sleep(11)
src.death(1)
del(animation)
return
*/
+7 -1
View File
@@ -566,10 +566,16 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is
src << "Only administrators may use this command."
return
if(ticker.mode.name == "revolution" || ticker.mode.name == "AI malfunction" || ticker.mode.name == "confliction")
var/choice = input("The shuttle will just return if you call it. Call anyway?") in list("Confirm", "Cancel")
if(choice == "Confirm")
emergency_shuttle.fake_recall = rand(300,500)
else
return
emergency_shuttle.incall()
world << "\blue <B>Alert: The emergency shuttle has been called. It will arrive in [round(emergency_shuttle.timeleft()/60)] minutes.</B>"
world << sound('shuttlecalled.ogg')
return
/client/proc/admin_cancel_shuttle()
+2 -1
View File
@@ -1,6 +1,7 @@
/mob/living/carbon/human/say(var/message)
if(src.mutantrace == "lizard")
message = dd_replaceText(message, "s", stutter("ss"))
if(copytext(message, 1, 2) != "*")
message = dd_replaceText(message, "s", stutter("ss"))
..(message)
/mob/living/carbon/human/say_understands(var/other)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 26 KiB