mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
[MIRROR] Hostile mob friends! (#8992)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: CHOMPStation2 <chompsation2@gmail.com>
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
|
||||
#define FACTION_ALTEVIAN "altevian"
|
||||
#define FACTION_CULT "cult"
|
||||
#define FACTION_GLAMOUR "glamour"
|
||||
#define FACTION_PIRATE "pirate"
|
||||
#define FACTION_SHADEKIN "shadekin"
|
||||
#define FACTION_SPACE_GHOST "space ghost"
|
||||
|
||||
@@ -33,3 +33,92 @@
|
||||
/mob/living/simple_mob/homunculus/update_icons()
|
||||
return
|
||||
|
||||
/mob/living/simple_mob/homunculus/evil
|
||||
var/seen_melee
|
||||
var/seen_gun
|
||||
var/transformed
|
||||
var/seen_armour
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
|
||||
faction = FACTION_GLAMOUR
|
||||
|
||||
melee_damage_lower = 5
|
||||
melee_damage_upper = 7
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/hostile
|
||||
|
||||
/mob/living/simple_mob/homunculus/evil/Life()
|
||||
handle_homunculus()
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/homunculus/evil/proc/handle_homunculus()
|
||||
if(!transformed)
|
||||
for(var/mob/living/carbon/human/H in range(8, src))
|
||||
if(H.stat == DEAD)
|
||||
continue
|
||||
name = H.name
|
||||
desc = H.desc
|
||||
icon = H.icon
|
||||
icon_state = H.icon_state
|
||||
copy_overlays(H, TRUE)
|
||||
resize(H.size_multiplier, ignore_prefs = TRUE)
|
||||
var/obj/item/A = H.get_active_hand()
|
||||
var/obj/item/I = H.get_inactive_hand()
|
||||
if(istype(A,/obj/item/weapon/material) || istype(A,/obj/item/weapon/melee) || istype(I,/obj/item/weapon/material) || istype(I,/obj/item/weapon/melee))
|
||||
seen_melee = 1
|
||||
melee_damage_lower = 20
|
||||
melee_damage_upper = 30
|
||||
if(istype(A,/obj/item/weapon/gun/projectile) || istype(I,/obj/item/weapon/gun/projectile))
|
||||
seen_gun = 1
|
||||
projectiletype = /obj/item/projectile/bullet/pistol/medium
|
||||
projectilesound = 'sound/weapons/Gunshot_light.ogg'
|
||||
if(istype(A,/obj/item/weapon/gun/projectile/shotgun) || istype(I,/obj/item/weapon/gun/projectile/shotgun))
|
||||
projectiletype = /obj/item/projectile/bullet/pellet/shotgun
|
||||
projectilesound = 'sound/weapons/Gunshot_shotgun.ogg'
|
||||
reload_time = 1.5 SECONDS
|
||||
ranged_attack_delay = 1.5 SECONDS
|
||||
projectile_dispersion = 8
|
||||
projectile_accuracy = -40
|
||||
if(istype(A,/obj/item/weapon/gun/projectile/automatic) || istype(I,/obj/item/weapon/gun/projectile/automatic))
|
||||
base_attack_cooldown = 5
|
||||
projectile_dispersion = 7
|
||||
projectile_accuracy = -20
|
||||
if(istype(A,/obj/item/weapon/gun/projectile/heavysniper) || istype(I,/obj/item/weapon/gun/projectile/heavysniper))
|
||||
projectiletype = /obj/item/projectile/bullet/rifle/a145/highvel // Do not get seen with a big ass sniper!
|
||||
projectilesound = 'sound/weapons/Gunshot_cannon.ogg'
|
||||
ranged_attack_delay = 2.5 SECONDS
|
||||
reload_time = 5 SECONDS
|
||||
projectile_accuracy = 75
|
||||
if(istype(A,/obj/item/weapon/gun/energy) || istype(I,/obj/item/weapon/gun/energy))
|
||||
seen_gun = 1
|
||||
projectiletype = /obj/item/projectile/beam/midlaser
|
||||
projectilesound = 'sound/weapons/Laser.ogg'
|
||||
projectile_dispersion = 5
|
||||
projectile_accuracy = -20
|
||||
if(istype(A,/obj/item/weapon/gun/energy/ionrifle) || istype(I,/obj/item/weapon/gun/energy/ionrifle))
|
||||
projectiletype = /obj/item/projectile/ion
|
||||
if(istype(A,/obj/item/weapon/gun/energy/lasercannon) || istype(I,/obj/item/weapon/gun/energy/lasercannon))
|
||||
projectiletype = /obj/item/projectile/beam/heavylaser
|
||||
ranged_attack_delay = 2.5 SECONDS
|
||||
reload_time = 5 SECONDS
|
||||
projectilesound = 'sound/weapons/lasercannonfire.ogg'
|
||||
if(istype(A,/obj/item/weapon/gun/energy/sniperrifle) || istype(I,/obj/item/weapon/gun/energy/sniperrifle))
|
||||
projectiletype = /obj/item/projectile/beam/sniper // Do not get seen with a big ass sniper!
|
||||
projectilesound = 'sound/weapons/gauss_shoot.ogg'
|
||||
ranged_attack_delay = 2.5 SECONDS
|
||||
reload_time = 5 SECONDS
|
||||
projectile_accuracy = 75
|
||||
if(istype(A,/obj/item/weapon/gun/magnetic) || istype(I,/obj/item/weapon/gun/magnetic))
|
||||
seen_gun = 1
|
||||
projectiletype = /obj/item/projectile/bullet/magnetic/bore
|
||||
projectilesound = 'sound/weapons/railgun.ogg'
|
||||
ranged_attack_delay = 1.5 SECONDS
|
||||
projectile_dispersion = 5
|
||||
projectile_accuracy = 20
|
||||
var/obj/item/clothing/suit/S = H.get_equipped_item(slot_wear_suit)
|
||||
if(istype(S,/obj/item/clothing/suit/armor) || istype(S,/obj/item/clothing/suit/space/rig/))
|
||||
armor = list(melee = 40, bullet = 30, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 100)
|
||||
transformed = 1
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -189,3 +189,48 @@
|
||||
/datum/ai_holder/simple_mob/melee/evasive/corrupthound
|
||||
violent_breakthrough = TRUE
|
||||
can_breakthrough = TRUE
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/fire
|
||||
icon_state = "badboi_fire"
|
||||
icon_living = "badboi_fire"
|
||||
icon_dead = "badboi_fire-dead"
|
||||
icon_rest = "badboi_fire_rest"
|
||||
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged/aggressive
|
||||
|
||||
projectiletype = /obj/item/projectile/scatter/flamethrower
|
||||
ranged_attack_delay = 2 SECONDS
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/laser
|
||||
icon_state = "badboi_laser"
|
||||
icon_living = "badboi_laser"
|
||||
icon_dead = "badboi_laser-dead"
|
||||
icon_rest = "badboi_laser_rest"
|
||||
|
||||
maxHealth = 150
|
||||
health = 150
|
||||
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/ranged
|
||||
|
||||
ranged_attack_delay = 2 SECONDS
|
||||
projectiletype = /obj/item/projectile/beam/midlaser
|
||||
projectilesound = 'sound/weapons/Laser.ogg'
|
||||
projectile_dispersion = 5
|
||||
projectile_accuracy = -20
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound/fast
|
||||
icon_state = "badboi_fast"
|
||||
icon_living = "badboi_fast"
|
||||
icon_dead = "badboi_fast-dead"
|
||||
icon_rest = "badboi_fast_rest"
|
||||
|
||||
maxHealth = 100
|
||||
health = 100
|
||||
|
||||
movement_cooldown = -1
|
||||
|
||||
melee_damage_lower = 7
|
||||
melee_damage_upper = 15
|
||||
|
||||
@@ -137,6 +137,8 @@
|
||||
|
||||
/datum/ai_holder/simple_mob/vore/meowl
|
||||
var/last_friend_time = 0
|
||||
violent_breakthrough = FALSE
|
||||
destructive = FALSE
|
||||
|
||||
/datum/ai_holder/simple_mob/vore/meowl/engage_target()
|
||||
ai_log("engage_target() : Entering.", AI_LOG_DEBUG)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 612 KiB After Width: | Height: | Size: 708 KiB |
Reference in New Issue
Block a user