Skip to content

Commit

Permalink
removes more magic
Browse files Browse the repository at this point in the history
  • Loading branch information
FalloutFalcon committed Apr 6, 2024
1 parent 1d48d3e commit c696e68
Show file tree
Hide file tree
Showing 21 changed files with 3 additions and 843 deletions.
13 changes: 0 additions & 13 deletions code/game/objects/items/granters.dm
Original file line number Diff line number Diff line change
Expand Up @@ -247,19 +247,6 @@
user.Stun(40, ignore_canstun = TRUE)
user.petrify(30)

/obj/item/book/granter/spell/cards
spell = /obj/effect/proc_holder/spell/aimed/spell_cards
spellname = "spellcards"
icon_state ="bookspellcards"
desc = "The ultimate card trick, for users ten and up."
remarks = list("It's all about the razzmataz.", "...I don't think I'll actually be sawing anyone in half", "These are pretty flimsy, most armor would defeat them.", "They do burn damage? Weird.", "Why the dumb stance? It's just a flick of the hand...", "Are these cards? They feel stiffer then pages.", "Best performed using a top hat...")

/obj/item/book/granter/spell/cards/recoil(mob/living/user)
..()
to_chat(user,"<span class='warning'>The cards are against you!</span>")
user.Stun(40, ignore_canstun = TRUE)
user.petrify(30)

/obj/item/book/granter/spell/shapechange
spell = /obj/effect/proc_holder/spell/targeted/shapeshift
spellname = "shapechange"
Expand Down
58 changes: 0 additions & 58 deletions code/game/objects/structures/fugitive_role_spawners.dm

This file was deleted.

1 change: 0 additions & 1 deletion code/game/objects/structures/icemoon/cave_entrance.dm
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,6 @@ GLOBAL_LIST_INIT(ore_probability, list(
new /obj/item/clothing/suit/space/hardsuit/carp(loc)
new /mob/living/simple_animal/hostile/carp(loc)
if(prob(45))
new /obj/item/gun/magic/hook(loc)
new /mob/living/simple_animal/hostile/carp(loc)
if(prob(45))
new /obj/item/reagent_containers/food/snacks/fishmeat/carp(loc)
Expand Down
179 changes: 0 additions & 179 deletions code/modules/antagonists/changeling/powers/mutations.dm
Original file line number Diff line number Diff line change
Expand Up @@ -211,185 +211,6 @@
if(can_drop)
new /obj/item/melee/synthetic_arm_blade(get_turf(user))

/***************************************\
|***********COMBAT TENTACLES*************|
\***************************************/

/datum/action/changeling/weapon/tentacle
name = "Tentacle"
desc = "We ready a tentacle to grab items or victims with. Costs 10 chemicals."
helptext = "We can use it once to retrieve a distant item. If used on living creatures, the effect depends on the intent: \
Help will simply drag them closer, Disarm will grab whatever they're holding instead of them, Grab will put the victim in our hold after catching it, \
and Harm will pull it in and stab it if we're also holding a sharp weapon. Cannot be used while in lesser form."
button_icon_state = "tentacle"
chemical_cost = 10
dna_cost = 2
req_human = 1
weapon_type = /obj/item/gun/magic/tentacle
weapon_name_simple = "tentacle"
silent = TRUE

/obj/item/gun/magic/tentacle
name = "tentacle"
desc = "A fleshy tentacle that can stretch out and grab things or people."
icon = 'icons/obj/changeling_items.dmi'
icon_state = "tentacle"
item_state = "tentacle"
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL | NOBLUDGEON
flags_1 = NONE
w_class = WEIGHT_CLASS_HUGE
slot_flags = NONE
ammo_type = /obj/item/ammo_casing/magic/tentacle
fire_sound = 'sound/effects/splat.ogg'
force = 0
max_charges = 1
fire_delay = 1
throwforce = 0 //Just to be on the safe side
throw_range = 0
throw_speed = 0

/obj/item/gun/magic/tentacle/Initialize(mapload, silent)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, CHANGELING_TRAIT)
if(ismob(loc))
if(!silent)
loc.visible_message("<span class='warning'>[loc.name]\'s arm starts stretching inhumanly!</span>", "<span class='warning'>Our arm twists and mutates, transforming it into a tentacle.</span>", "<span class='hear'>You hear organic matter ripping and tearing!</span>")
else
to_chat(loc, "<span class='notice'>You prepare to extend a tentacle.</span>")


/obj/item/gun/magic/tentacle/shoot_with_empty_chamber(mob/living/user as mob|obj)
to_chat(user, "<span class='warning'>The [name] is not ready yet.</span>")

/obj/item/gun/magic/tentacle/process_fire()
. = ..()
if(charges == 0)
qdel(src)

/obj/item/ammo_casing/magic/tentacle
name = "tentacle"
desc = "A tentacle."
projectile_type = /obj/projectile/tentacle
caliber = "tentacle"
icon_state = "arrow"
firing_effect_type = null
var/obj/item/gun/magic/tentacle/gun //the item that shot it

/obj/item/ammo_casing/magic/tentacle/Initialize()
gun = loc
. = ..()

/obj/item/ammo_casing/magic/tentacle/Destroy()
gun = null
return ..()

/obj/projectile/tentacle
name = "tentacle"
icon_state = "tentacle_end"
pass_flags = PASSTABLE
damage = 0
damage_type = BRUTE
range = 8
hitsound = 'sound/weapons/thudswoosh.ogg'
var/chain
var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it

/obj/projectile/tentacle/Initialize()
source = loc
. = ..()

/obj/projectile/tentacle/fire(setAngle)
if(firer)
chain = firer.Beam(src, icon_state = "tentacle", emissive = FALSE)
..()

/obj/projectile/tentacle/proc/reset_throw(mob/living/carbon/human/H)
if(H.throw_mode)
H.throw_mode_off() //Don't annoy the changeling if he doesn't catch the item

/obj/projectile/tentacle/proc/tentacle_grab(mob/living/carbon/human/H, mob/living/carbon/C)
if(H.Adjacent(C))
if(H.get_active_held_item() && !H.get_inactive_held_item())
H.swap_hand()
if(H.get_active_held_item())
return
C.grabbedby(H)
C.grippedby(H, instant = TRUE) //instant aggro grab

/obj/projectile/tentacle/proc/tentacle_stab(mob/living/carbon/human/H, mob/living/carbon/C)
if(H.Adjacent(C))
for(var/obj/item/I in H.held_items)
if(I.get_sharpness())
C.visible_message("<span class='danger'>[H] impales [C] with [H.p_their()] [I.name]!</span>", "<span class='userdanger'>[H] impales you with [H.p_their()] [I.name]!</span>")
C.apply_damage(I.force, BRUTE, BODY_ZONE_CHEST)
H.do_item_attack_animation(C, used_item = I)
H.add_mob_blood(C)
playsound(get_turf(H),I.hitsound,75,TRUE)
return

/obj/projectile/tentacle/on_hit(atom/target, blocked = FALSE)
var/mob/living/carbon/human/H = firer
if(blocked >= 100)
return BULLET_ACT_BLOCK
if(isitem(target))
var/obj/item/I = target
if(!I.anchored)
to_chat(firer, "<span class='notice'>You pull [I] towards yourself.</span>")
H.throw_mode_on()
I.throw_at(H, 10, 2)
. = BULLET_ACT_HIT

else if(isliving(target))
var/mob/living/L = target
if(!L.anchored && !L.throwing)//avoid double hits
if(iscarbon(L))
var/mob/living/carbon/C = L
var/firer_intent = INTENT_HARM
var/mob/M = firer
if(istype(M))
firer_intent = M.a_intent
switch(firer_intent)
if(INTENT_HELP)
C.visible_message("<span class='danger'>[L] is pulled by [H]'s tentacle!</span>","<span class='userdanger'>A tentacle grabs you and pulls you towards [H]!</span>")
C.throw_at(get_step_towards(H,C), 8, 2)
return BULLET_ACT_HIT

if(INTENT_DISARM)
var/obj/item/I = C.get_active_held_item()
if(I)
if(C.dropItemToGround(I))
C.visible_message("<span class='danger'>[I] is yanked off [C]'s hand by [src]!</span>","<span class='userdanger'>A tentacle pulls [I] away from you!</span>")
on_hit(I) //grab the item as if you had hit it directly with the tentacle
return BULLET_ACT_HIT
else
to_chat(firer, "<span class='warning'>You can't seem to pry [I] off [C]'s hands!</span>")
return BULLET_ACT_BLOCK
else
to_chat(firer, "<span class='danger'>[C] has nothing in hand to disarm!</span>")
return BULLET_ACT_HIT

if(INTENT_GRAB)
C.visible_message("<span class='danger'>[L] is grabbed by [H]'s tentacle!</span>","<span class='userdanger'>A tentacle grabs you and pulls you towards [H]!</span>")
C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_grab), H, C))
return BULLET_ACT_HIT

if(INTENT_HARM)
C.visible_message("<span class='danger'>[L] is thrown towards [H] by a tentacle!</span>","<span class='userdanger'>A tentacle grabs you and throws you towards [H]!</span>")
C.throw_at(get_step_towards(H,C), 8, 2, H, TRUE, TRUE, callback=CALLBACK(src, PROC_REF(tentacle_stab), H, C))
return BULLET_ACT_HIT
else
L.visible_message("<span class='danger'>[L] is pulled by [H]'s tentacle!</span>","<span class='userdanger'>A tentacle grabs you and pulls you towards [H]!</span>")
L.throw_at(get_step_towards(H,L), 8, 2)
. = BULLET_ACT_HIT

/obj/projectile/tentacle/Destroy()
qdel(chain)
source = null
return ..()


/***************************************\
|****************SHIELD*****************|
\***************************************/
Expand Down
Loading

0 comments on commit c696e68

Please sign in to comment.