mirror of
https://github.com/CHOMPstation/CHOMPstation.git
synced 2026-08-23 20:16:19 +01:00
Merge pull request #595 from Sharkmare/patch-68
Minor Solarmoth maintenance
This commit is contained in:
@@ -44,7 +44,9 @@
|
||||
"bomb" = 100,
|
||||
"bio" = 100,
|
||||
"rad" = 100)
|
||||
|
||||
|
||||
var/mycolour = COLOR_BLUE //Variable Lighting colours
|
||||
var/original_temp = null //Value to remember temp
|
||||
var/set_temperature = T0C + 10000 //Sets the target point of 10k degrees celsius
|
||||
var/heating_power = 100000 //This controls the strength at which it heats the environment.
|
||||
var/emp_heavy = 2
|
||||
@@ -57,14 +59,23 @@
|
||||
var/emp_chance = 20 // Beware synths
|
||||
isEdible = 0 //You can look, but you can't lick.
|
||||
|
||||
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/PunchTarget()
|
||||
//this does not require us to hit the target therefore its before we check it -shark
|
||||
if(target_mob&& prob(emp_chance))
|
||||
target_mob.emp_act(4) //The weakest strength of EMP
|
||||
visible_message("<span class='danger'>The moth releases a powerful shock!</span>")
|
||||
..()
|
||||
|
||||
|
||||
. = ..()
|
||||
if(.) // Let's first check IF we even hit someone before injecting -shark
|
||||
if(isliving(.))
|
||||
var/mob/living/L = .
|
||||
if(L.reagents)
|
||||
if(prob(poison_chance))
|
||||
L << "<span class='warning'>You feel a shock rushing through your veins.</span>"
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
/* Why did we even have PunchTarget() defined twice, why does byond allow this, wot. -shark
|
||||
/mob/living/simple_animal/retaliate/solarmoth/PunchTarget()
|
||||
. = ..()
|
||||
if(isliving(.))
|
||||
@@ -73,11 +84,11 @@
|
||||
if(prob(poison_chance))
|
||||
L << "<span class='warning'>You feel a shock rushing through your veins.</span>"
|
||||
L.reagents.add_reagent(poison_type, poison_per_bite)
|
||||
|
||||
*/
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/Life()
|
||||
. = ..()
|
||||
if(icon_state != icon_dead)
|
||||
if(icon_state != icon_dead) //I mean on death() Life() should disable but i guess doesnt hurt to make sure -shark
|
||||
var/datum/gas_mixture/env = loc.return_air() //Gets all the information on the local air.
|
||||
var/transfer_moles = 0.25 * env.total_moles //The bigger the room, the harder it is to heat the room.
|
||||
var/datum/gas_mixture/removed = env.remove(transfer_moles)
|
||||
@@ -87,7 +98,7 @@
|
||||
removed.add_thermal_energy(heat_transfer)
|
||||
|
||||
else if(heat_transfer > 0 && env.temperature < set_temperature) //Set temperature is 10,000 degrees celsius. So this thing will start cooking crazy hot between the temperatures of 200C and 10,000C.
|
||||
heating_power = 9999999999999 //FLAME ON! This will make the moth heat up the room at an incredible rate.
|
||||
heating_power = original_temp*100 //Changed to work variable -shark //FLAME ON! This will make the moth heat up the room at an incredible rate.
|
||||
heat_transfer = min(heat_transfer , heating_power) //limit by the power rating of the heater. Except it's hot, so yeah.
|
||||
removed.add_thermal_energy(heat_transfer)
|
||||
|
||||
@@ -97,9 +108,13 @@
|
||||
env.merge(removed)
|
||||
|
||||
var/global/list/moth_amount = list() //global moth list for the solargrub to read. Maybe want to transfer this to global variables file??
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/New()
|
||||
moth_amount += src //when this thing is created, it adds itself to the global list
|
||||
. = ..()
|
||||
|
||||
//Since I'm changing hyper mode to be variable we need to store old power
|
||||
original_temp = heating_power //We remember our old goal, for use in non perpetual heating level increase
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/proc/explode()
|
||||
src.anchored = 0
|
||||
@@ -121,7 +136,7 @@ var/global/list/moth_amount = list() //global moth list for the solargrub to rea
|
||||
/mob/living/simple_animal/retaliate/solarmoth/handle_light()
|
||||
. = ..()
|
||||
if(. == 0 && !is_dead())
|
||||
set_light(9.5, 1, COLOR_BLUE) //9.5 makes the brightness range super huge.
|
||||
set_light(9.5, 1, mycolour) //9.5 makes the brightness range super huge.
|
||||
return 1
|
||||
|
||||
|
||||
@@ -133,4 +148,41 @@ var/global/list/moth_amount = list() //global moth list for the solargrub to rea
|
||||
vore_pounce_chance = 0 //moths only eat incapacitated targets. It's too lazy burning you to a crisp to try to pounce you
|
||||
vore_default_mode = DM_DIGEST
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/lunarmoth
|
||||
name = "lunarmoth"
|
||||
desc = "A majestic sparkling lunarmoth. Also a slight engineering hazard."
|
||||
|
||||
var/nospampls = 0
|
||||
|
||||
cold_damage_per_tick = 0
|
||||
//ATMOS
|
||||
set_temperature = T0C - 10000
|
||||
heating_power = -100000
|
||||
//light
|
||||
mycolour = COLOR_WHITE
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/lunarmoth/proc/chilltheglass() //Why does a coldfusion moth do this? science -shark
|
||||
nospampls = 1
|
||||
if(prob(25))
|
||||
for(var/obj/machinery/light/light in range(5, src))
|
||||
if(prob(50))
|
||||
light.broken()
|
||||
if(prob(10))
|
||||
for(var/obj/structure/window/window in range(5, src))
|
||||
if(prob(50))
|
||||
window.shatter()
|
||||
if(prob(20))
|
||||
for(var/obj/machinery/door/firedoor/door in range(14, src)) //double viewrange
|
||||
if(prob(5))
|
||||
visible_message("<span class='danger'>Emergency Shutter malfunction!</span>")
|
||||
door.blocked = 0
|
||||
door.open(1)
|
||||
|
||||
spawn(100)
|
||||
nospampls = 0
|
||||
|
||||
/mob/living/simple_animal/retaliate/solarmoth/lunarmoth/Life()
|
||||
..()
|
||||
if(!nospampls)
|
||||
chilltheglass() //shatter and broken calls for glass and lights. Also some special thing.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user