Merge pull request #595 from Sharkmare/patch-68

Minor Solarmoth maintenance
This commit is contained in:
Vollybally
2019-04-05 21:32:19 -04:00
committed by GitHub
@@ -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.