Skip to content

Commit

Permalink
Кислотная турель для королевы ксеноморфов (TauCetiStation#13235)
Browse files Browse the repository at this point in the history
* sadasd

* aaaaa

* FINAL

* asdsa

* return

* heh

* lala

* eass

* Update alien.dmi

* Delete acid_turret.dmi

* Update actions.dmi

* as

* Update powers.dm

* Update powers.dm

* Update code/modules/mob/living/simple_animal/hostile/alien.dm

* Update code/modules/mob/living/living.dm

Co-authored-by: KIBORG04 <[email protected]>

* Update code/modules/mob/living/simple_animal/hostile/alien.dm

Co-authored-by: KIBORG04 <[email protected]>

* Update code/modules/mob/living/simple_animal/hostile/hostile.dm

Co-authored-by: KIBORG04 <[email protected]>

* am

* aaa

* Revert "Merge branch 'acid_turrel' of https://github.com/maleyvich/TauCetiClassic into acid_turrel"

This reverts commit 319ad84, reversing
changes made to 874a7eb.

* reclass

* reclass2

* Update constructs.dm

* Update alien.dmi

* k

* dsasda

* Update code/modules/mob/living/simple_animal/hostile/hostile.dm

Co-authored-by: KIBORG04 <[email protected]>

* Update code/modules/mob/living/simple_animal/pylon.dm

Co-authored-by: KIBORG04 <[email protected]>

* Update code/modules/mob/living/simple_animal/pylon.dm

Co-authored-by: KIBORG04 <[email protected]>

* tocult

* Update pylon.dm

* Update hostile.dm

* izmenilsprite

* Update actions.dmi

* Update in_hand.dm

* stundelete

* vvv

* Update in_hand.dm

* fix

* podymal

---------

Co-authored-by: KIBORG04 <[email protected]>
  • Loading branch information
maleyvich and KIBORG04 authored Jul 25, 2024
1 parent 3d1a106 commit e74233c
Show file tree
Hide file tree
Showing 13 changed files with 98 additions and 30 deletions.
8 changes: 8 additions & 0 deletions code/datums/spells/in_hand.dm
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,14 @@
neurotoxin
damage_type = TOX

/obj/item/projectile/x_turret_acid
name = "turret toxin"
damage = 5
agony = 30
icon = 'icons/obj/projectiles.dmi'
icon_state = "neurotoxin"
damage_type = BURN

///////////////////////////////////////////

/obj/effect/proc_holder/spell/in_hand/tesla
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,16 +107,16 @@ ADD_TO_GLOBAL_LIST(/obj/structure/cult/pylon, pylons)
COOLDOWN_START(src, corruption, corruption_delay)

/obj/structure/cult/pylon/proc/activate(time_to_stop, datum/religion/R)
var/mob/living/simple_animal/hostile/pylon/charged = new(loc)
var/mob/living/simple_animal/hostile/pylon/cult/charged = new(loc)
charged.maxHealth = max_integrity
charged.health = get_integrity()
forceMove(charged)

if(time_to_stop)
charged.timer = addtimer(CALLBACK(charged, TYPE_PROC_REF(/mob/living/simple_animal/hostile/pylon, deactivate)), time_to_stop, TIMER_STOPPABLE)
charged.timer = addtimer(CALLBACK(charged, TYPE_PROC_REF(/mob/living/simple_animal/hostile/pylon/cult, deactivate)), time_to_stop, TIMER_STOPPABLE)

if(R)
charged.RegisterSignal(R, COMSIG_REL_ADD_MEMBER, TYPE_PROC_REF(/mob/living/simple_animal/hostile/pylon, add_friend))
charged.RegisterSignal(R, COMSIG_REL_ADD_MEMBER, TYPE_PROC_REF(/mob/living/simple_animal/hostile/pylon/cult, add_friend))
return charged

/obj/structure/cult/pylon_platform
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/effects/anomalies.dm
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@
qdel(obj)
var/obj/structure/cult/pylon/P = new(F)
P.icon_state = "pylon_glow"
if(prob(30)) // activate() is return /mob/living/simple_animal/hostile/pylon and since there is dynamic typing, it works
if(prob(30)) // activate() is return /mob/living/simple_animal/hostile/pylon/cult and since there is dynamic typing, it works
P = P.activate(null, global.cult_religion)
var/datum/beam/B = P.Beam(src, "drainblood", time = INFINITY, beam_sleep_time = 1 MINUTE, beam_plane = LIGHTING_LAMPS_PLANE)
RegisterSignal(B, list(COMSIG_PARENT_QDELETING), PROC_REF(remove_beam))
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/carbon/xenomorph/humanoid/queen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@
/obj/effect/proc_holder/spell/no_target/resin,
/obj/effect/proc_holder/spell/no_target/lay_egg,
/obj/effect/proc_holder/spell/targeted/screech,
/obj/effect/proc_holder/spell/no_target/air_plant)
/obj/effect/proc_holder/spell/no_target/air_plant,
/obj/effect/proc_holder/spell/no_target/xeno_turret)


/mob/living/carbon/xenomorph/humanoid/queen/atom_init()
Expand Down
27 changes: 27 additions & 0 deletions code/modules/mob/living/carbon/xenomorph/powers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -499,5 +499,32 @@
user.adjustToxLoss(-plasma_cost)
T.assume_gas("phoron", 25, user.bodytemperature) // give 25 moles of phoron (approx. 0.25% of air in room like Bar)

/obj/effect/proc_holder/spell/no_target/xeno_turret
name = "Поставить турель"
desc = "Поставить турель, стреляющую кислотными плевками."
charge_max = 2000
charge_type = "recharge"
clothes_req = FALSE
invocation = "none"
invocation_type = "none"
action_background_icon_state = "bg_alien"
plasma_cost = 400
action_icon_state = "acid_turret"

/obj/effect/proc_holder/spell/no_target/xeno_turret/cast_check(skipcharge = FALSE, mob/user = usr, try_start = TRUE)
if(ALREADY_STRUCTURE_THERE(user))
if(try_start)
to_chat(user, "<span class='warning'>There is already a structure there.</span>")
return FALSE
if(!CHECK_WEEDS(user))
if(try_start)
to_chat (user, "<span class='warning'>You can only build on weeds.</span>")
return FALSE
return ..()

/obj/effect/proc_holder/spell/no_target/xeno_turret/cast(list/targets, mob/user = usr)
user.visible_message("<span class='notice'><B>[user]</B> has planted acid turret.</span>", "<span class='notice'>You plant acid turret.</span>")
new /mob/living/simple_animal/hostile/pylon/aliens(user.loc)

#undef ALREADY_STRUCTURE_THERE
#undef CHECK_WEEDS
30 changes: 6 additions & 24 deletions code/modules/mob/living/simple_animal/constructs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@
if(istype(A, /turf/simulated/wall/cult))
its_wall = TRUE

if(its_wall || istype(A, /obj/structure/mineral_door/cult) || istype(A, /obj/structure/cult) || isconstruct(A) || istype(A, /mob/living/simple_animal/hostile/pylon))
if(its_wall || istype(A, /obj/structure/mineral_door/cult) || istype(A, /obj/structure/cult) || isconstruct(A) || istype(A, /mob/living/simple_animal/hostile/pylon/cult))
var/atom/movable/stored_pulling = pulling
if(stored_pulling)
stored_pulling.set_dir(get_dir(stored_pulling.loc, loc))
Expand Down Expand Up @@ -464,30 +464,19 @@


/////////////////////////////////////Charged Pylon not construct/////////////////////////////////
/mob/living/simple_animal/hostile/pylon
/mob/living/simple_animal/hostile/pylon/cult
name = "charged pylon"
real_name = "charged pylon"
desc = "Летающий кристалл, излучающий таинственную энергию."
icon = 'icons/obj/cult.dmi'
icon_state = "pylon_glow"
icon_living = "pylon"
ranged = TRUE
amount_shoot = 3
projectiletype = /obj/item/projectile/beam/cult_laser
projectilesound = 'sound/weapons/guns/gunpulse_laser.ogg'
ranged_cooldown = 5
ranged_cooldown_cap = 0
maxHealth = 120
health = 120
melee_damage = 0
speed = 0
anchored = TRUE
stop_automated_movement = TRUE
canmove = FALSE
faction = "cult"
var/timer

/mob/living/simple_animal/hostile/pylon/atom_init()
/mob/living/simple_animal/hostile/pylon/cult/atom_init()
. = ..()
friends = global.cult_religion?.members

Expand All @@ -497,26 +486,19 @@
qdel(A)
qdel(src)

/mob/living/simple_animal/hostile/pylon/proc/deactivate()
/mob/living/simple_animal/hostile/pylon/cult/proc/deactivate()
for(var/obj/structure/cult/pylon/P in contents)
P.update_integrity(health)
P.forceMove(loc)
qdel(src)

/mob/living/simple_animal/hostile/pylon/proc/add_friend(datum/religion/R, mob/M, holy_role)
/mob/living/simple_animal/hostile/pylon/cult/proc/add_friend(datum/religion/R, mob/M, holy_role)
friends = R.members

/mob/living/simple_animal/hostile/pylon/attackby(obj/item/I, mob/user, params)
/mob/living/simple_animal/hostile/pylon/cult/attackby(obj/item/I, mob/user, params)
if(iscultist(user))
if(istype(I, /obj/item/weapon/storage/bible/tome))
deactivate()
deltimer(timer)
else
return ..()

/mob/living/simple_animal/hostile/pylon/update_canmove()
return

/mob/living/simple_animal/hostile/pylon/UnarmedAttack(atom/A)
SEND_SIGNAL(src, COMSIG_MOB_HOSTILE_ATTACKINGTARGET, A)
OpenFire(A)
21 changes: 21 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/alien.dm
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,24 @@
..()
visible_message("[src] lets out a waning guttural screech, green blood bubbling from its maw...")
playsound(src, 'sound/voice/xenomorph/death_1.ogg', VOL_EFFECTS_MASTER)

/mob/living/simple_animal/hostile/pylon/aliens
name = "acid turret"
real_name = "acid turret"
desc = "Склизкое строение, выпускающее из себя кислотные плевки, наносящие боль и ожоги при попадании."
icon = 'icons/mob/alien.dmi'
icon_state = "acid_turret"
icon_dead = "acid_turret_dead"
ranged_cooldown = 3
amount_shoot = 1
projectiletype = /obj/item/projectile/x_turret_acid
projectilesound = 'sound/voice/xenomorph/spitacid_1.ogg'
faction = "alien"

/mob/living/simple_animal/hostile/pylon/aliens/allowAttackTarget(mob/living/target)
return !target.incapacitated()

/mob/living/simple_animal/hostile/pylon/aliens/death()
..()
visible_message("[src] lets out a waning guttural snarl, acid bubbling from its tube...")
playsound(src, 'sound/voice/xenomorph/death_1.ogg', VOL_EFFECTS_MASTER)
6 changes: 6 additions & 0 deletions code/modules/mob/living/simple_animal/hostile/hostile.dm
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@
if(stat == CONSCIOUS)
handle_combat_ai()

//Check the ability to attack
/mob/living/simple_animal/hostile/proc/allowAttackTarget()
return TRUE

//////////////HOSTILE MOB TARGETTING AND AGGRESSION////////////
/mob/living/simple_animal/hostile/proc/ListTargets()//Step 1, find out what we can see
var/list/L = list()
Expand Down Expand Up @@ -138,6 +142,8 @@
return FALSE
if(animalistic && HAS_TRAIT(L, TRAIT_NATURECHILD) && L.naturechild_check())
return FALSE
if(!allowAttackTarget(L))
return FALSE
return TRUE
if(isobj(the_target))
if(the_target.type in wanted_objects)
Expand Down
22 changes: 22 additions & 0 deletions code/modules/mob/living/simple_animal/pylon.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/mob/living/simple_animal/hostile/pylon
name = "pylon"
real_name = "pylon"
desc = "Ты не должен этого видеть."
ranged = TRUE
amount_shoot = 3
ranged_cooldown = 5
ranged_cooldown_cap = 0
maxHealth = 120
health = 120
melee_damage = 0
speed = 0
anchored = TRUE
stop_automated_movement = TRUE
canmove = FALSE

/mob/living/simple_animal/hostile/pylon/update_canmove()
return

/mob/living/simple_animal/hostile/pylon/UnarmedAttack(atom/A)
SEND_SIGNAL(src, COMSIG_MOB_HOSTILE_ATTACKINGTARGET, A)
OpenFire(A)
2 changes: 1 addition & 1 deletion code/modules/projectiles/projectile/beams.dm
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,6 @@
def_zone = ran_zone()

/obj/item/projectile/beam/cult_laser/Bump(atom/A, forced=0)
if(istype(A, /mob/living/simple_animal/hostile/pylon) || istype(A, /obj/structure/cult/pylon) || isconstruct(A) || istype(A, /obj/effect/anomaly/bluespace/cult_portal))
if(istype(A, /mob/living/simple_animal/hostile/pylon/cult) || istype(A, /obj/structure/cult/pylon) || isconstruct(A) || istype(A, /obj/effect/anomaly/bluespace/cult_portal))
return FALSE
return ..()
Binary file modified icons/hud/actions.dmi
Binary file not shown.
Binary file modified icons/mob/alien.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions taucetistation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2051,6 +2051,7 @@
#include "code\modules\mob\living\simple_animal\hulk.dm"
#include "code\modules\mob\living\simple_animal\hulk_powers.dm"
#include "code\modules\mob\living\simple_animal\parrot.dm"
#include "code\modules\mob\living\simple_animal\pylon.dm"
#include "code\modules\mob\living\simple_animal\shade.dm"
#include "code\modules\mob\living\simple_animal\simple_animal.dm"
#include "code\modules\mob\living\simple_animal\species_larvaes.dm"
Expand Down

0 comments on commit e74233c

Please sign in to comment.