mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
Adjustments to alien acid. Aliens should no longer see invalid targets as one of their acid options when using the verb. Right clicking should give the invalid target message when appropriate.
Made a bunch of other things acid proof. Bullets, lasers, runes, etc. Aliens should no longer emote as male when they are gender neuter. Or maybe plural, who knows. Tweaked respawn character verb. Hopefully it'll work on the live server now. Minor Strike Team fix. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@689 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -46,8 +46,8 @@ obj
|
|||||||
//Icon for fire on turfs, also helps for nurturing small fires until they are full tile
|
//Icon for fire on turfs, also helps for nurturing small fires until they are full tile
|
||||||
|
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
|
unacidable = 1//So you can't melt fire with acid.
|
||||||
|
|
||||||
//luminosity = 3
|
//luminosity = 3
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
anchored = 1
|
anchored = 1
|
||||||
layer = 99
|
layer = 99
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
unacidable = 1
|
unacidable = 1//Just to be sure.
|
||||||
|
|
||||||
/obj/admins
|
/obj/admins
|
||||||
name = "admins"
|
name = "admins"
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
desc = "FUCK FUCK FUCK AAAHHH"
|
desc = "FUCK FUCK FUCK AAAHHH"
|
||||||
icon_state = "bhole2"
|
icon_state = "bhole2"
|
||||||
opacity = 0
|
opacity = 0
|
||||||
unacidable = 1 //well, if you got that close, you're fucked anyway, but...
|
unacidable = 1
|
||||||
density = 0
|
density = 0
|
||||||
anchored = 1
|
anchored = 1
|
||||||
var/datum/effects/system/harmless_smoke_spread/smoke
|
var/datum/effects/system/harmless_smoke_spread/smoke
|
||||||
@@ -66,6 +66,7 @@
|
|||||||
|
|
||||||
/obj/beam
|
/obj/beam
|
||||||
name = "beam"
|
name = "beam"
|
||||||
|
unacidable = 1//Just to be sure.
|
||||||
|
|
||||||
/obj/beam/a_laser
|
/obj/beam/a_laser
|
||||||
name = "a laser"
|
name = "a laser"
|
||||||
@@ -111,6 +112,7 @@
|
|||||||
icon = 'projectiles.dmi'
|
icon = 'projectiles.dmi'
|
||||||
icon_state = "bullet"
|
icon_state = "bullet"
|
||||||
density = 1
|
density = 1
|
||||||
|
unacidable = 1//Just to be sure.
|
||||||
var/yo = null
|
var/yo = null
|
||||||
var/xo = null
|
var/xo = null
|
||||||
var/current = null
|
var/current = null
|
||||||
@@ -512,6 +514,7 @@
|
|||||||
name = "manifest"
|
name = "manifest"
|
||||||
icon = 'screen1.dmi'
|
icon = 'screen1.dmi'
|
||||||
icon_state = "x"
|
icon_state = "x"
|
||||||
|
unacidable = 1//Just to be sure.
|
||||||
|
|
||||||
/obj/morgue
|
/obj/morgue
|
||||||
name = "morgue"
|
name = "morgue"
|
||||||
@@ -578,7 +581,7 @@
|
|||||||
icon = 'stationobjs.dmi'
|
icon = 'stationobjs.dmi'
|
||||||
icon_state = "portal"
|
icon_state = "portal"
|
||||||
density = 1
|
density = 1
|
||||||
unacidable = 1
|
unacidable = 1//Can't destroy energy portals.
|
||||||
var/failchance = 5
|
var/failchance = 5
|
||||||
var/obj/item/target = null
|
var/obj/item/target = null
|
||||||
var/creator = null
|
var/creator = null
|
||||||
@@ -706,6 +709,7 @@
|
|||||||
desc = "A display case for prized possessions."
|
desc = "A display case for prized possessions."
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
unacidable = 1//Dissolving the case would also delete the gun.
|
||||||
var/health = 30
|
var/health = 30
|
||||||
var/occupied = 1
|
var/occupied = 1
|
||||||
var/destroyed = 0
|
var/destroyed = 0
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
anchored = 1.0
|
anchored = 1.0
|
||||||
opacity = 0
|
opacity = 0
|
||||||
density = 1
|
density = 1
|
||||||
|
unacidable = 1
|
||||||
|
|
||||||
/client/proc/forcewall()
|
/client/proc/forcewall()
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ However people seem to like it for some reason.
|
|||||||
icon_state = "Singularity"
|
icon_state = "Singularity"
|
||||||
anchored = 1
|
anchored = 1
|
||||||
density = 1
|
density = 1
|
||||||
// unacidable = 1 //oh the hilarity.
|
unacidable = 1 //Don't comment this out.
|
||||||
var/active = 0
|
var/active = 0
|
||||||
var/energy = 10
|
var/energy = 10
|
||||||
var/Dtime = null
|
var/Dtime = null
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ var/runedec = 0
|
|||||||
icon = 'rune.dmi'
|
icon = 'rune.dmi'
|
||||||
icon_state = "1"
|
icon_state = "1"
|
||||||
var/visibility = 0
|
var/visibility = 0
|
||||||
|
unacidable = 1
|
||||||
|
|
||||||
|
|
||||||
var
|
var
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
layer = 5.0
|
layer = 5.0
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 0
|
anchored = 0
|
||||||
|
unacidable = 1 //Creature is not harmed by acid.
|
||||||
|
|
||||||
var/state = 0
|
var/state = 0
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
/obj/alien/acid/proc/tick()
|
/obj/alien/acid/proc/tick()
|
||||||
ticks += 1
|
ticks += 1
|
||||||
if(target.unacidable)
|
|
||||||
del(src)
|
|
||||||
return
|
|
||||||
for(var/mob/O in hearers(src, null))
|
for(var/mob/O in hearers(src, null))
|
||||||
O.show_message("\green <B>[src.target] sizzles and begins to melt under the bubbling mess of acid!</B>", 1)
|
O.show_message("\green <B>[src.target] sizzles and begins to melt under the bubbling mess of acid!</B>", 1)
|
||||||
if(prob(ticks*10))
|
if(prob(ticks*10))
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
name = "alien thing"
|
name = "alien thing"
|
||||||
desc = "theres something alien about this"
|
desc = "theres something alien about this"
|
||||||
icon = 'alien.dmi'
|
icon = 'alien.dmi'
|
||||||
unacidable = 1 //alien acid don't melts alien things...
|
unacidable = 1 //Aliens won't ment their own.
|
||||||
|
|
||||||
/obj/alien/egg
|
/obj/alien/egg
|
||||||
desc = "It looks like a weird egg"
|
desc = "It looks like a weird egg"
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
density = 1
|
density = 1
|
||||||
opacity = 1
|
opacity = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
unacidable = 0 //...except for resin "wall" since it can block way.
|
unacidable = 0 //So aliens can destroy their own walls if they need to.
|
||||||
|
|
||||||
var/health = 20
|
var/health = 20
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
|||||||
name = "effects"
|
name = "effects"
|
||||||
icon = 'effects.dmi'
|
icon = 'effects.dmi'
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
|
unacidable = 1//So effects are not targeted by alien acid.
|
||||||
flags = TABLEPASS
|
flags = TABLEPASS
|
||||||
|
|
||||||
/obj/effects/water
|
/obj/effects/water
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
desc = "A glass lab container for storing interesting creatures."
|
desc = "A glass lab container for storing interesting creatures."
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 1
|
anchored = 1
|
||||||
unacidable = 1
|
unacidable = 1//Dissolving the case would also delete Lamarr
|
||||||
var/health = 30
|
var/health = 30
|
||||||
var/occupied = 1
|
var/occupied = 1
|
||||||
var/destroyed = 0
|
var/destroyed = 0
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
layer = 5.0
|
layer = 5.0
|
||||||
density = 1
|
density = 1
|
||||||
anchored = 0
|
anchored = 0
|
||||||
unacidable = 1
|
unacidable = 1//While not technically mobs, these objects should not be affected by alien acid.
|
||||||
|
|
||||||
var/state = 0 //0 = null, 1 = attack, 2 = idle
|
var/state = 0 //0 = null, 1 = attack, 2 = idle
|
||||||
|
|
||||||
|
|||||||
@@ -290,9 +290,9 @@ They spawn as an assistant but there is no announcement. /N */
|
|||||||
|
|
||||||
var/GKEY = input
|
var/GKEY = input
|
||||||
var/GNAME = "none"
|
var/GNAME = "none"
|
||||||
var/mob/dead/observer/GDEL //to properly delete the mob later on.
|
var/mob/dead/observer/GDEL //To properly delete the mob later on.
|
||||||
for(var/mob/dead/observer/G in world)
|
for(var/mob/dead/observer/G in world)
|
||||||
if(G.key==input)
|
if(G.key==input||GKEY)
|
||||||
GDEL = G
|
GDEL = G
|
||||||
GNAME = G.real_name
|
GNAME = G.real_name
|
||||||
else
|
else
|
||||||
@@ -321,7 +321,7 @@ They spawn as an assistant but there is no announcement. /N */
|
|||||||
|
|
||||||
new_character.loc = spawn_here
|
new_character.loc = spawn_here
|
||||||
new_character.real_name = GNAME
|
new_character.real_name = GNAME
|
||||||
message_admins("\blue [key_name_admin(usr)] has respawned [GKEY] as [new_character.name].", 1) //Here so it doesn't null name if an admin re-spawns themselves.
|
message_admins("\blue [key_name_admin(usr)] has respawned [GKEY] as [new_character.name].", 1) //Here so it doesn't null client if an admin re-spawns themselves.
|
||||||
new_character.key = GKEY
|
new_character.key = GKEY
|
||||||
// preferences.copy_to(new_character)
|
// preferences.copy_to(new_character)
|
||||||
new_character.dna.ready_dna(new_character)
|
new_character.dna.ready_dna(new_character)
|
||||||
|
|||||||
@@ -58,12 +58,12 @@ var/global/sent_strike_team = 0
|
|||||||
else
|
else
|
||||||
new_commando.age = rand(35,45)
|
new_commando.age = rand(35,45)
|
||||||
new_commando.b_type = pick("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
|
new_commando.b_type = pick("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
|
||||||
new_commando.dna.ready_dna(new_commando) //creates DNA
|
new_commando.dna.ready_dna(new_commando) //Creates DNA
|
||||||
//Creates mind stuff.
|
//Creates mind stuff.
|
||||||
new_commando.mind = new
|
new_commando.mind = new
|
||||||
new_commando.mind.current = new_commando
|
new_commando.mind.current = new_commando
|
||||||
new_commando.mind.assigned_role = "Death Commando"
|
new_commando.mind.assigned_role = "Death Commando"
|
||||||
new_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")
|
new_commando.mind.store_memory("<B>Nuke Code:</B> \red [nuke_code].")//So they don't forget their code or mission.
|
||||||
new_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
new_commando.mind.store_memory("<B>Mission:</B> \red [input].")
|
||||||
|
|
||||||
del(STARTLOC)
|
del(STARTLOC)
|
||||||
@@ -107,8 +107,8 @@ var/global/sent_strike_team = 0
|
|||||||
GUN.bullets = 7
|
GUN.bullets = 7
|
||||||
new_commando.equip_if_possible(GUN, new_commando.slot_s_store)
|
new_commando.equip_if_possible(GUN, new_commando.slot_s_store)
|
||||||
// new_commando.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle(new_commando), new_commando.slot_l_hand)
|
// new_commando.equip_if_possible(new /obj/item/weapon/gun/energy/pulse_rifle(new_commando), new_commando.slot_l_hand)
|
||||||
//Commented out because Commandos now have their rifles spawn in front of them, along with operation manuals.
|
/*Commented out because Commandos now have their rifles spawn in front of them, along with operation manuals.
|
||||||
//Useful for copy pasta since I'm lazy.
|
Useful for copy pasta since I'm lazy.*/
|
||||||
|
|
||||||
var/obj/item/weapon/card/id/W = new(new_commando)
|
var/obj/item/weapon/card/id/W = new(new_commando)
|
||||||
W.name = "[new_commando.real_name]'s ID Card"
|
W.name = "[new_commando.real_name]'s ID Card"
|
||||||
@@ -120,8 +120,8 @@ var/global/sent_strike_team = 0
|
|||||||
var/list/candidates = list() // Picks a random ghost for the role. Mostly a copy of alien burst code.
|
var/list/candidates = list() // Picks a random ghost for the role. Mostly a copy of alien burst code.
|
||||||
for(var/mob/dead/observer/G in world)
|
for(var/mob/dead/observer/G in world)
|
||||||
if(G.client)
|
if(G.client)
|
||||||
// if(!G.client.holder && ((G.client.inactivity/10)/60) <= 5) //!G.client.holder means that whoever called/has the proc won't be added to the list.
|
if(!G.client.holder && ((G.client.inactivity/10)/60) <= 5) //Whoever called/has the proc won't be added to the list.
|
||||||
if(((G.client.inactivity/10)/60) <= 5) //Removing it allows even the caller to jump in.
|
// if(((G.client.inactivity/10)/60) <= 5) //Removing it allows even the caller to jump in. Good for testing.
|
||||||
candidates.Add(G)
|
candidates.Add(G)
|
||||||
if(candidates.len)
|
if(candidates.len)
|
||||||
var/mob/dead/observer/G = pick(candidates)
|
var/mob/dead/observer/G = pick(candidates)
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
/*NOTE:
|
/*NOTES:
|
||||||
|
|
||||||
Put in power that will lay a facehugger egg but cost a lot of plasma, 250 or something?
|
|
||||||
|
|
||||||
Also perhaps only queens can do that?
|
|
||||||
|
|
||||||
|
There are several problems with alien powers right now. I am currently trying to fix the dissolve verb so it makes a lot more sense.
|
||||||
|
Alien spit is ridiculous and needs to be toned down. It homes in on targets when it should probably work
|
||||||
|
more like a taser shot but with continuous toxin damage to the target if they are hit.
|
||||||
|
Invisibility works well but 30 seconds is too long. 15 would be good considering it doesn't cost much and makes the alien a lot more
|
||||||
|
robust (can't be canceled by anything short of thermals or a superpower).
|
||||||
|
Vent crawl shouldn't transport the alien to the Prison Station or back. The list should also be in some order since right now it's
|
||||||
|
often difficult to pick the right destination.
|
||||||
|
Resin wall should also apply to mobs so that aliens can envelope them in resin (effectively paralyze them) to successfully hatch more
|
||||||
|
aliens. Perhaps it should also prevent the target from suiciding.
|
||||||
|
All I can think of right now./N
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/verb/invis()
|
/mob/living/carbon/alien/humanoid/verb/invis()
|
||||||
set name = "Invisibility (50)"
|
set name = "Invisibility (50)"
|
||||||
set desc = "Makes you invisible for 30 seconds"
|
set desc = "Makes you invisible for 30 seconds"
|
||||||
@@ -38,7 +39,7 @@ Also perhaps only queens can do that?
|
|||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
if(src.toxloss >= 25)
|
if(src.toxloss >= 25)
|
||||||
src.toxloss -= 25
|
src.toxloss -= 25
|
||||||
@@ -88,7 +89,7 @@ Also perhaps only queens can do that?
|
|||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
if(src.toxloss >= 100)
|
if(src.toxloss >= 100)
|
||||||
src.toxloss -= 100
|
src.toxloss -= 100
|
||||||
@@ -103,11 +104,11 @@ Also perhaps only queens can do that?
|
|||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/verb/call_to()
|
/mob/living/carbon/alien/humanoid/verb/call_to()
|
||||||
set name = "Call facehuggers (5)"
|
set name = "Call facehuggers (5)"
|
||||||
set desc = "Makes all nearby facehuggers follow you."
|
set desc = "Makes all nearby facehuggers follow you"
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
|
|
||||||
if(src.toxloss >= 5)
|
if(src.toxloss >= 5)
|
||||||
@@ -180,11 +181,11 @@ Also perhaps only queens can do that?
|
|||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/verb/evolve() // -- TLE
|
/mob/living/carbon/alien/humanoid/verb/evolve() // -- TLE
|
||||||
set name = "Evolve (500)"
|
set name = "Evolve (500)"
|
||||||
set desc = "Produce an interal egg sac capable of spawning children."
|
set desc = "Produce an interal egg sac capable of spawning children"
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
|
|
||||||
if(!src.toxloss)
|
if(!src.toxloss)
|
||||||
@@ -203,7 +204,7 @@ Also perhaps only queens can do that?
|
|||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/verb/resinwall() // -- TLE
|
/mob/living/carbon/alien/humanoid/verb/resinwall() // -- TLE
|
||||||
set name = "Shape Resin Wall (200)"
|
set name = "Shape Resin Wall (200)"
|
||||||
set desc = "Produce a wall of resin that blocks entry and line of sight."
|
set desc = "Produce a wall of resin that blocks entry and line of sight"
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
@@ -224,13 +225,13 @@ Also perhaps only queens can do that?
|
|||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/proc/ventcrawl() // -- TLE
|
/mob/living/carbon/alien/humanoid/proc/ventcrawl() // -- TLE
|
||||||
set name = "Crawl through Vent"
|
set name = "Crawl through Vent"
|
||||||
set desc = "Enter an air vent and appear at a random one."
|
set desc = "Enter an air vent and appear at a random one"
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent))
|
// if(!istype(V,/obj/machinery/atmoalter/siphs/fullairsiphon/air_vent))
|
||||||
// return
|
// return
|
||||||
|
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
var/vent_found = 0
|
var/vent_found = 0
|
||||||
for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src))
|
for(var/obj/machinery/atmospherics/unary/vent_pump/v in range(1,src))
|
||||||
@@ -288,31 +289,59 @@ Also perhaps only queens can do that?
|
|||||||
for(var/obj/alien/facehugger/F in huggers)
|
for(var/obj/alien/facehugger/F in huggers)
|
||||||
F.loc = src.loc
|
F.loc = src.loc
|
||||||
|
|
||||||
/mob/living/carbon/alien/humanoid/verb/corrode(obj/O as obj in view(1)) // -- TLE
|
|
||||||
|
/*Xenos now have a proc and a verb for drenching stuff in acid. I couldn't get them to work right when combined so this was the next best solution.
|
||||||
|
The first proc defines the acid throw function while the other two work in the game itself. Probably a good idea to revise this later.
|
||||||
|
I kind of like the right click only--the window version can get a little confusing. Perhaps something telling the alien they need to right click?
|
||||||
|
/N*/
|
||||||
|
/obj/proc/acid()
|
||||||
|
usr.toxloss -= 200
|
||||||
|
var/obj/alien/acid/A = new(src.loc)
|
||||||
|
A.target = src
|
||||||
|
for(var/mob/M in viewers(src, null))
|
||||||
|
M.show_message(text("\green <B>[src] vomits globs of vile stuff all over [src]!</B>"), 1)
|
||||||
|
A.tick()
|
||||||
|
|
||||||
|
/mob/living/carbon/alien/humanoid/proc/corrode_target() //Aliens only see items on the list of objects that they can actually spit on./N
|
||||||
set name = "Spit Corrosive Acid (200)"
|
set name = "Spit Corrosive Acid (200)"
|
||||||
set desc = "Drench an object in acid, destroying it over time."
|
set desc = "Drench an object in acid, destroying it over time."
|
||||||
set category = "Alien"
|
set category = "Alien"
|
||||||
|
|
||||||
|
var/obj/A
|
||||||
if(src.stat)
|
if(src.stat)
|
||||||
src << "You must be concious to do this"
|
src << "You must be concious to do this."
|
||||||
return
|
return
|
||||||
|
var/list/xeno_target
|
||||||
|
xeno_target = list("ABORT COMMAND")
|
||||||
|
for(var/obj/O in view(1))
|
||||||
|
if(!O.unacidable)
|
||||||
|
xeno_target.Add(O)
|
||||||
|
A = input("Corrode which target?", "Targets", A) in xeno_target
|
||||||
|
if(A == "ABORT COMMAND")
|
||||||
|
return
|
||||||
|
if(src.toxloss < 200)
|
||||||
|
src << "Not enough plasma."
|
||||||
|
return
|
||||||
|
if(A in view(1))//Another check to see if the item is in range. So the alien does not run off with the window open.
|
||||||
|
A.acid()
|
||||||
|
else
|
||||||
|
src << "Target is too far away."
|
||||||
|
return
|
||||||
|
|
||||||
|
/mob/living/carbon/alien/humanoid/verb/corrode(obj/O as anything in view(1)) //If they right click to corrode, an error will flash if its an invalid target./N
|
||||||
|
set name = "Spit Corrosive Acid (200)"
|
||||||
|
set desc = "Drench an object in acid, destroying it over time."
|
||||||
|
|
||||||
if(!istype(O, /obj))
|
if(!istype(O, /obj))
|
||||||
return
|
return
|
||||||
|
if(src.stat)
|
||||||
if(O.unacidable) //noize, don't fucking touch this and learn, why algorithms must be universal when possible (here it IS possible)
|
src << "You must be concious to do this."
|
||||||
src << "You cannot spit acid over this."
|
return
|
||||||
return //also, if you want list of unacidables - search("unacidable = 1". all files), key_press(F3).
|
|
||||||
|
|
||||||
/*if(range(O, src) > 1)
|
|
||||||
src << "That's too far away!"
|
|
||||||
return*/
|
|
||||||
if(src.toxloss < 200)
|
if(src.toxloss < 200)
|
||||||
src << "You don't have enough plasma."
|
src << "Not enough plasma."
|
||||||
|
return
|
||||||
|
if(O.unacidable) //So the aliens don't destroy energy fields/singularies/other aliens/etc with their acid.
|
||||||
|
src << "Cannot destroy this object."
|
||||||
|
return
|
||||||
else
|
else
|
||||||
src.toxloss -= 200
|
O.acid()
|
||||||
var/obj/alien/acid/A = new(O.loc)
|
|
||||||
A.target = O
|
|
||||||
for(var/mob/M in viewers(src, null))
|
|
||||||
M.show_message(text("\green <B>[src] vomits globs of vile stuff all over [O]!</B>"), 1)
|
|
||||||
A.tick()
|
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
message = "<B>The [src.name]</B> roars."
|
message = "<B>The [src.name]</B> roars."
|
||||||
m_type = 2
|
m_type = 2
|
||||||
if("tail")
|
if("tail")
|
||||||
message = "<B>The [src.name]</B> waves his tail."
|
message = "<B>The [src.name]</B> waves its tail."
|
||||||
m_type = 1
|
m_type = 1
|
||||||
if("gasp")
|
if("gasp")
|
||||||
message = "<B>The [src.name]</B> gasps."
|
message = "<B>The [src.name]</B> gasps."
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
message = "<B>The [src.name]</B> moans!"
|
message = "<B>The [src.name]</B> moans!"
|
||||||
m_type = 2
|
m_type = 2
|
||||||
if("nod")
|
if("nod")
|
||||||
message = "<B>The [src.name]</B> nods his head."
|
message = "<B>The [src.name]</B> nods its head."
|
||||||
m_type = 1
|
m_type = 1
|
||||||
if("sit")
|
if("sit")
|
||||||
message = "<B>The [src.name]</B> sits down."
|
message = "<B>The [src.name]</B> sits down."
|
||||||
@@ -79,11 +79,11 @@
|
|||||||
message = "<B>The [src.name]</B> rolls."
|
message = "<B>The [src.name]</B> rolls."
|
||||||
m_type = 1
|
m_type = 1
|
||||||
if("shake")
|
if("shake")
|
||||||
message = "<B>The [src.name]</B> shakes his head."
|
message = "<B>The [src.name]</B> shakes its head."
|
||||||
m_type = 1
|
m_type = 1
|
||||||
if("gnarl")
|
if("gnarl")
|
||||||
if (!muzzled)
|
if (!muzzled)
|
||||||
message = "<B>The [src.name]</B> gnarls and shows his teeth.."
|
message = "<B>The [src.name]</B> gnarls and shows its teeth.."
|
||||||
m_type = 2
|
m_type = 2
|
||||||
if("jump")
|
if("jump")
|
||||||
message = "<B>The [src.name]</B> jumps!"
|
message = "<B>The [src.name]</B> jumps!"
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ to clean it up, or just beat the shit out of it (which takes ages).
|
|||||||
/mob/living/carbon/alien/humanoid/New()
|
/mob/living/carbon/alien/humanoid/New()
|
||||||
spawn (1)
|
spawn (1)
|
||||||
src.verbs += /mob/living/carbon/alien/humanoid/proc/ventcrawl // Give only normal aliens ventcrawling -- TLE
|
src.verbs += /mob/living/carbon/alien/humanoid/proc/ventcrawl // Give only normal aliens ventcrawling -- TLE
|
||||||
|
src.verbs += /mob/living/carbon/alien/humanoid/proc/corrode_target //So aliens propely get two acid verbs. /N
|
||||||
var/datum/reagents/R = new/datum/reagents(100)
|
var/datum/reagents/R = new/datum/reagents(100)
|
||||||
reagents = R
|
reagents = R
|
||||||
R.my_atom = src
|
R.my_atom = src
|
||||||
|
|||||||
Reference in New Issue
Block a user