[MIRROR] turns stickmen into basic mobs (#8204)

* turns stickmen into basic mobs (#61272)

* turns stickmen into basic mobs

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
This commit is contained in:
SkyratBot
2021-09-15 23:49:32 +02:00
committed by GitHub
parent 20d6ae229b
commit 376663876b
10 changed files with 157 additions and 103 deletions
@@ -0,0 +1,94 @@
/mob/living/basic/stickman
name = "Angry Stick Man"
desc = "A being from a realm with only 2 dimensions. At least it's trying to stay faced towards you."
icon_state = "stickman"
icon_living = "stickman"
icon_dead = "stickman_dead"
mob_biotypes = MOB_HUMANOID
gender = MALE
health = 100
maxHealth = 100
speed = 0.5
attack_verb_continuous = "punches"
attack_verb_simple = "punch"
melee_damage_lower = 10
melee_damage_upper = 10
attack_sound = 'sound/weapons/punch1.ogg'
combat_mode = TRUE
faction = list("stickman")
ai_controller = /datum/ai_controller/basic_controller/stickman
/mob/living/basic/stickman/Initialize(mapload)
. = ..()
new /obj/effect/temp_visual/paper_scatter(get_turf(src))
AddElement(/datum/element/basic_body_temp_sensitive, cold_damage = 7.5, heat_damage = 7.5)
AddElement(/datum/element/atmos_requirements, list("min_oxy" = 5, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0), 7.5)
/datum/ai_controller/basic_controller/stickman
blackboard = list(
BB_TARGETTING_DATUM = new /datum/targetting_datum/basic()
)
ai_movement = /datum/ai_movement/basic_avoidance
planning_subtrees = list(
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/basic_melee_attack_subtree/stickman
)
/datum/ai_planning_subtree/basic_melee_attack_subtree/stickman
melee_attack_behavior = /datum/ai_behavior/basic_melee_attack/stickman
/datum/ai_behavior/basic_melee_attack/stickman
action_cooldown = 1.5 SECONDS
/datum/ai_controller/basic_controller/stickman/PerformIdleBehavior(delta_time)
. = ..()
var/mob/living/living_pawn = pawn
if(DT_PROB(25, delta_time) && (living_pawn.mobility_flags & MOBILITY_MOVE) && isturf(living_pawn.loc) && !living_pawn.pulledby)
var/move_dir = pick(GLOB.alldirs)
living_pawn.Move(get_step(living_pawn, move_dir), move_dir)
/mob/living/basic/stickman/dog
name = "Angry Stick Dog"
desc = "Stickman's best friend, if he could see him at least."
icon_state = "stickdog"
icon_living = "stickdog"
icon_dead = "stickdog_dead"
attack_verb_continuous = "bites"
attack_verb_simple = "bite"
attack_vis_effect = ATTACK_EFFECT_BITE
sharpness = SHARP_POINTY
mob_biotypes = MOB_BEAST
attack_sound = 'sound/weapons/bite.ogg'
/mob/living/basic/stickman/ranged
name = "Angry Stick Gunman"
desc = "How do 2 dimensional guns even work??"
icon_state = "stickmanranged"
icon_living = "stickmanranged"
attack_verb_continuous = "whacks"
attack_verb_simple = "whack"
melee_damage_lower = 5
melee_damage_upper = 5
attack_sound = 'sound/weapons/genhit1.ogg'
ai_controller = /datum/ai_controller/basic_controller/stickman/ranged
/mob/living/basic/stickman/ranged/Initialize()
. = ..()
AddElement(/datum/element/death_drops, list(/obj/item/gun/ballistic/automatic/pistol/stickman))
AddElement(/datum/element/ranged_attacks, /obj/item/ammo_casing/c9mm, 'sound/misc/bang.ogg')
/datum/ai_controller/basic_controller/stickman/ranged
planning_subtrees = list(
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/basic_ranged_attack_subtree/stickman
)
/datum/ai_planning_subtree/basic_ranged_attack_subtree/stickman
ranged_attack_behavior = /datum/ai_behavior/basic_ranged_attack/stickman
/datum/ai_behavior/basic_ranged_attack/stickman
action_cooldown = 5 SECONDS
@@ -31,7 +31,7 @@
. = ..()
AddElement(/datum/element/death_drops, list(/obj/effect/decal/cleanable/insectguts))
AddElement(/datum/element/swabable, CELL_LINE_TABLE_COCKROACH, CELL_VIRUS_TABLE_GENERIC_MOB, 1, 7)
AddElement(/datum/element/basic_body_temp_sensetive, 270, INFINITY)
AddElement(/datum/element/basic_body_temp_sensitive, 270, INFINITY)
AddComponent(/datum/component/squashable, squash_chance = 50, squash_damage = 1)
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)