Skip to content

Commit

Permalink
V1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
MysteryMan21333 committed Nov 8, 2023
1 parent daf7c09 commit 2c40cdb
Show file tree
Hide file tree
Showing 8 changed files with 1,389 additions and 0 deletions.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/mob/living/simple_animal/hostile/hellhound
name = "Hell Hound"
desc = "A massive, firey wolf like creature with powerful muscles, magama-hot claws, and aggression to match."
icon = 'modular_splurt/icons/mobs/werewolf.dmi'
icon_state = "Hell_Hound_idle"
icon_living = "Hell_Hound_idle"
icon_dead = "Werewolf_dead"
icon_gib = "syndicate_gib"
pixel_x = -16
gender = MALE
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
stat_attack = UNCONSCIOUS
speak = list("ROAR!","Rawr!","GRRAAGH!","Growl!")
speak_emote = list("growls", "snarls")
emote_hear = list("grumbles.","snarls.")
emote_taunt = list("bares its teeth", "stomps")
speak_chance = 10
taunt_chance = 25
speed = 0
see_in_dark = 8
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab= 4,
/obj/item/stack/sheet/animalhide = 2,
/obj/item/stack/sheet/bone = 4)
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
maxHealth = 500
health = 500
obj_damage = 60
armour_penetration = 30
melee_damage_lower = 56
melee_damage_upper = 56
attack_sound = 'modular_splurt/sound/misc/claw_rend.ogg'
faction = list("werewolf")
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 5
gold_core_spawnable = HOSTILE_SPAWN
var/charging = FALSE
has_penis = TRUE
has_butt = TRUE

footstep_type = FOOTSTEP_MOB_HEAVY

//**werewolf_mode**
// Hostile: Normal deathclaw murder machine
// Friendly: Does not attack
// Rape: Hurts and lewds people
// Gentle: lewds people
// Abomination: Hurts and does unspeakable lewd things to people
var/werewolf_mode = "hostile"

/mob/living/simple_animal/hostile/hellhound/pacifist
name = "Friendly Hell Hound"
desc = "A massive, firey wolf like creature with powerful muscles, magama-hot claws, and aggression to match."
werewolf_mode = "friendly"
friendly_verb_continuous = "howls at"
friendly_verb_simple = "howl at"

/mob/living/simple_animal/hostile/hellhound/bullet_act(obj/item/projectile/Proj)
if(!Proj)
return
if(prob(10))
visible_message(span_danger("\The [src] growls, enraged!"))
sleep(3)
Charge()
if(prob(85) || Proj.damage > 26) //prob(x) = chance for proj to actually do something, adjust depending on how OP you want deathclaws to be
return ..()
else
visible_message(span_danger("\The [Proj] bounces off \the [src]'s thick hide!"))
return 0

/mob/living/simple_animal/hostile/hellhound/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!charging)
..()

/mob/living/simple_animal/hostile/hellhound/AttackingTarget()
if (werewolf_mode == "friendly")
return // Do not attack

if(!charging)
return ..()

/mob/living/simple_animal/hostile/hellhound/Goto(target, delay, minimum_distance)
if(!charging)
..()

/mob/living/simple_animal/hostile/hellhound/Move()
if(charging)
new /obj/effect/temp_visual/decoy/fading(loc,src)
DestroySurroundings()
. = ..()
if(charging)
DestroySurroundings()

/mob/living/simple_animal/hostile/hellhound/proc/Charge()
var/turf/T = get_turf(target)
if(!T || T == loc)
return
charging = TRUE
visible_message(span_danger("[src] charges!"))
DestroySurroundings()
walk(src, 0)
setDir(get_dir(src, T))
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))

/mob/living/simple_animal/hostile/hellhound/charge_end(list/effects_to_destroy)
charging = FALSE
if(target)
Goto(target, move_to_delay, minimum_distance)

/mob/living/simple_animal/hostile/hellhound/Bump(atom/A)
if(charging)
if(isturf(A) || isobj(A) && A.density)
A.ex_act(EXPLODE_HEAVY)
DestroySurroundings()
..()

/mob/living/simple_animal/hostile/hellhound/throw_impact(atom/A)
if(!charging)
return ..()

else if(isliving(A))
var/mob/living/L = A
L.visible_message(span_danger("[src] slams into [L]!"), span_userdanger("[src] slams into you!"))
L.apply_damage(melee_damage_lower/2, BRUTE)
playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1)
shake_camera(L, 4, 3)
shake_camera(src, 2, 3)
var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src)))
L.throw_at(throwtarget, 3)

charging = FALSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/mob/living/simple_animal/hostile/ice_wolf
name = "Ice Werewolf"
desc = "A massive, ice wolf like creature with powerful muscles, gleaming-cold claws, and aggression to match."
icon = 'modular_splurt/icons/mobs/werewolf.dmi'
icon_state = "Ice_Wolf_idle"
icon_living = "Ice_Wolf_idle"
icon_dead = "Werewolf_dead"
icon_gib = "syndicate_gib"
pixel_x = -16
gender = MALE
mob_biotypes = list(MOB_ORGANIC, MOB_BEAST)
stat_attack = UNCONSCIOUS
speak = list("ROAR!","Rawr!","GRRAAGH!","Growl!")
speak_emote = list("growls", "snarls")
emote_hear = list("grumbles.","snarls.")
emote_taunt = list("bares its teeth", "stomps")
speak_chance = 10
taunt_chance = 25
speed = 0
see_in_dark = 8
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab= 4,
/obj/item/stack/sheet/animalhide = 2,
/obj/item/stack/sheet/bone = 4)
attack_verb_continuous = "claws"
attack_verb_simple = "claw"
maxHealth = 500
health = 500
obj_damage = 60
armour_penetration = 30
melee_damage_lower = 56
melee_damage_upper = 56
attack_sound = 'modular_splurt/sound/misc/claw_rend.ogg'
faction = list("werewolf")
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 5
gold_core_spawnable = HOSTILE_SPAWN
var/charging = FALSE
has_penis = TRUE
has_butt = TRUE

footstep_type = FOOTSTEP_MOB_HEAVY

//**werewolf_mode**
// Hostile: Normal deathclaw murder machine
// Friendly: Does not attack
// Rape: Hurts and lewds people
// Gentle: lewds people
// Abomination: Hurts and does unspeakable lewd things to people
var/werewolf_mode = "hostile"

/mob/living/simple_animal/hostile/ice_wolf/pacifist
name = "Friendly Ice Werewolf"
desc = "A massive, ice wolf like creature with powerful muscles, gleaming-cold claws, and aggression to match."
werewolf_mode = "friendly"
friendly_verb_continuous = "howls at"
friendly_verb_simple = "howl at"

/mob/living/simple_animal/hostile/ice_wolf/bullet_act(obj/item/projectile/Proj)
if(!Proj)
return
if(prob(10))
visible_message(span_danger("\The [src] growls, enraged!"))
sleep(3)
Charge()
if(prob(85) || Proj.damage > 26) //prob(x) = chance for proj to actually do something, adjust depending on how OP you want deathclaws to be
return ..()
else
visible_message(span_danger("\The [Proj] bounces off \the [src]'s thick hide!"))
return 0

/mob/living/simple_animal/hostile/ice_wolf/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect)
if(!charging)
..()

/mob/living/simple_animal/hostile/ice_wolf/AttackingTarget()
if (werewolf_mode == "friendly")
return // Do not attack

if(!charging)
return ..()

/mob/living/simple_animal/hostile/ice_wolf/Goto(target, delay, minimum_distance)
if(!charging)
..()

/mob/living/simple_animal/hostile/ice_wolf/Move()
if(charging)
new /obj/effect/temp_visual/decoy/fading(loc,src)
DestroySurroundings()
. = ..()
if(charging)
DestroySurroundings()

/mob/living/simple_animal/hostile/ice_wolf/proc/Charge()
var/turf/T = get_turf(target)
if(!T || T == loc)
return
charging = TRUE
visible_message(span_danger("[src] charges!"))
DestroySurroundings()
walk(src, 0)
setDir(get_dir(src, T))
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 1)
sleep(3)
throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .proc/charge_end))

/mob/living/simple_animal/hostile/ice_wolf/charge_end(list/effects_to_destroy)
charging = FALSE
if(target)
Goto(target, move_to_delay, minimum_distance)

/mob/living/simple_animal/hostile/ice_wolf/Bump(atom/A)
if(charging)
if(isturf(A) || isobj(A) && A.density)
A.ex_act(EXPLODE_HEAVY)
DestroySurroundings()
..()

/mob/living/simple_animal/hostile/ice_wolf/throw_impact(atom/A)
if(!charging)
return ..()

else if(isliving(A))
var/mob/living/L = A
L.visible_message(span_danger("[src] slams into [L]!"), span_userdanger("[src] slams into you!"))
L.apply_damage(melee_damage_lower/2, BRUTE)
playsound(get_turf(L), 'sound/effects/meteorimpact.ogg', 100, 1)
shake_camera(L, 4, 3)
shake_camera(src, 2, 3)
var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src)))
L.throw_at(throwtarget, 3)

charging = FALSE
Loading

0 comments on commit 2c40cdb

Please sign in to comment.