sans work

This commit is contained in:
Heroman3003
2019-04-29 11:35:41 +10:00
parent b692c1899a
commit 66dfa403f5
7 changed files with 134 additions and 257 deletions
@@ -1,244 +0,0 @@
//
// Abstract Class
//
/mob/living/simple_mob/animal/space/mimic
name = "crate"
desc = "A rectangular steel crate."
icon_state = "crate"
icon_living = "crate"
icon = 'icons/obj/storage.dmi'
faction = "mimic"
maxHealth = 250
health = 250
//speed = 4 no idea what this is, conflicts with new AI update.
movement_cooldown = 10 //slow crate.
response_help = "touches"
response_disarm = "pushes"
response_harm = "hits"
harm_intent_damage = 5
melee_damage_lower = 4
melee_damage_upper = 6
attacktext = list("attacked")
attack_sound = 'sound/weapons/bite.ogg'
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
say_list_type = /datum/say_list/mimic
ai_holder_type = /datum/ai_holder/mimic
var/knockdown_chance = 15 //Stubbing your toe on furniture hurts.
showvoreprefs = 0 //VOREStation Edit - Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle.
/datum/say_list/mimic
say_got_target = list("growls")
/datum/ai_holder/mimic
wander = FALSE
hostile = TRUE
threaten = TRUE
threaten_timeout = 5 SECONDS
threaten_delay = 1 SECONDS //not a threat, more of a delay.
/mob/living/simple_mob/animal/space/carp/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
if(prob(knockdown_chance))
L.Weaken(3)
L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
/* should be covered by my "growls" say thing, but keeping it just in case.
/mob/living/simple_mob/animal/space/mimic/set_target()
. = ..()
if(.)
audible_emote("growls at [.]")
*/
/mob/living/simple_mob/animal/space/mimic/death()
..()
qdel(src)
/mob/living/simple_mob/animal/space/mimic/will_show_tooltip()
return FALSE
/mob/living/simple_mob/animal/space/mimic/death()
var/obj/structure/closet/crate/C = new(get_turf(src))
// Put loot in crate
for(var/obj/O in src)
if(isbelly(O)) //VOREStation edit
continue
O.forceMove(C)
..()
/mob/living/simple_mob/animal/space/mimic/Initialize()
. = ..()
for(var/obj/item/I in loc)
I.forceMove(src)
/* I honestly have no idea what's happening down there so I'm just taking the essentials and yeeting.
//
// Crate Mimic
//
// Aggro when you try to open them. Will also pickup loot when spawns and drop it when dies.
/mob/living/simple_mob/animal/space/mimic/crate
attacktext = list("bitten")
// stop_automated_movement = 1 we don't need these
// wander = 0
var/attempt_open = 0
// Pickup loot
/mob/living/simple_mob/animal/space/mimic/crate/Initialize()
. = ..()
for(var/obj/item/I in loc)
I.forceMove(src)
/* I can't find an equivilant to this, don't know why we really have it even so...
/mob/living/simple_mob/animal/space/mimic/crate/DestroySurroundings()
..()
if(prob(90))
icon_state = "[initial(icon_state)]open"
else
icon_state = initial(icon_state)
*/
/mob/living/simple_mob/animal/space/mimic/crate/ListTargets()
if(attempt_open)
return ..()
else
return ..(1)
/mob/living/simple_mob/animal/space/mimic/crate/set_target()
. = ..()
if(.)
trigger()
/mob/living/simple_mob/animal/space/mimic/crate/PunchTarget()
. = ..()
if(.)
icon_state = initial(icon_state)
/mob/living/simple_mob/animal/space/mimic/crate/proc/trigger()
if(!attempt_open)
visible_message("<b>[src]</b> starts to move!")
attempt_open = 1
/mob/living/simple_mob/animal/space/mimic/crate/adjustBruteLoss(var/damage)
trigger()
..(damage)
/mob/living/simple_mob/animal/space/mimic/crate/LoseTarget()
..()
icon_state = initial(icon_state)
/mob/living/simple_mob/animal/space/mimic/crate/LostTarget()
..()
icon_state = initial(icon_state)
/mob/living/simple_mob/animal/space/mimic/crate/death()
var/obj/structure/closet/crate/C = new(get_turf(src))
// Put loot in crate
for(var/obj/O in src)
if(isbelly(O)) //VOREStation edit
continue
O.forceMove(C)
..()
/mob/living/simple_mob/animal/space/mimic/crate/PunchTarget()
. =..()
var/mob/living/L = .
if(istype(L))
if(prob(15))
L.Weaken(2)
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
//
// Copy Mimic
//
var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate)
/mob/living/simple_mob/animal/space/mimic/copy
health = 100
maxHealth = 100
var/mob/living/creator = null // the creator
var/destroy_objects = 0
var/knockdown_people = 0
/mob/living/simple_mob/animal/space/mimic/copy/New(loc, var/obj/copy, var/mob/living/creator)
..(loc)
CopyObject(copy, creator)
/mob/living/simple_mob/animal/space/mimic/copy/death()
for(var/atom/movable/M in src)
if(isbelly(M)) //VOREStation edit
continue
M.forceMove(get_turf(src))
..()
/mob/living/simple_mob/animal/space/mimic/copy/ListTargets()
// Return a list of targets that isn't the creator
. = ..()
return . - creator
/mob/living/simple_mob/animal/space/mimic/copy/proc/CopyObject(var/obj/O, var/mob/living/creator)
if((istype(O, /obj/item) || istype(O, /obj/structure)) && !is_type_in_list(O, protected_objects))
O.forceMove(src)
name = O.name
desc = O.desc
icon = O.icon
icon_state = O.icon_state
icon_living = icon_state
if(istype(O, /obj/structure))
health = (anchored * 50) + 50
destroy_objects = 1
if(O.density && O.anchored)
knockdown_people = 1
melee_damage_lower *= 2
melee_damage_upper *= 2
else if(istype(O, /obj/item))
var/obj/item/I = O
health = 15 * I.w_class
melee_damage_lower = 2 + I.force
melee_damage_upper = 2 + I.force
move_to_delay = 2 * I.w_class
maxHealth = health
if(creator)
src.creator = creator
faction = "\ref[creator]" // very unique
return 1
return
/mob/living/simple_mob/animal/space/mimic/copy/DestroySurroundings()
if(destroy_objects)
..()
/mob/living/simple_mob/animal/space/mimic/copy/PunchTarget()
. =..()
if(knockdown_people)
var/mob/living/L = .
if(istype(L))
if(prob(15))
L.Weaken(1)
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
*/
@@ -0,0 +1,85 @@
/obj/structure/closet/crate/mimic
/mob/living/simple_mob/vore/aggressive/mimic
name = "crate"
desc = "A rectangular steel crate."
icon_state = "crate"
icon_living = "crate"
icon = 'icons/obj/storage.dmi'
faction = "mimic"
maxHealth = 250
health = 250
movement_cooldown = 5
response_help = "touches"
response_disarm = "pushes"
response_harm = "hits"
harm_intent_damage = 5
melee_damage_lower = 4
melee_damage_upper = 6
attacktext = list("attacked")
attack_sound = 'sound/weapons/bite.ogg'
min_oxy = 0
max_oxy = 0
min_tox = 0
max_tox = 0
min_co2 = 0
max_co2 = 0
min_n2 = 0
max_n2 = 0
minbodytemp = 0
say_list_type = /datum/say_list/mimic
ai_holder_type = /datum/ai_holder/mimic
var/obj/structure/closet/crate/real_crate
var/knockdown_chance = 15 //Stubbing your toe on furniture hurts.
showvoreprefs = 0 //Hides mechanical vore prefs for mimics. You can't see their gaping maws when they're just sitting idle.
/datum/say_list/mimic
say_got_target = list("Grrowl!")
/datum/ai_holder/mimic
wander = FALSE
hostile = TRUE
threaten = TRUE
threaten_timeout = 5 SECONDS
threaten_delay = 1 SECONDS //not a threat, more of a delay.
/mob/living/simple_mob/vore/aggressive/mimic/apply_melee_effects(var/atom/A)
if(isliving(A))
var/mob/living/L = A
if(prob(knockdown_chance))
L.Weaken(3)
L.visible_message(span("danger", "\The [src] knocks down \the [L]!"))
/mob/living/simple_mob/vore/aggressive/mimic/will_show_tooltip()
return FALSE
/mob/living/simple_mob/vore/aggressive/mimic/death()
..()
real_crate.forceMove(loc)
real_crate = null
qdel(src)
@@ -12,6 +12,13 @@
name = "Underdark Hard Mob Spawn"
mappath = 'hard_mob.dmm'
cost = 15
/datum/map_template/underdark/underhall
name = "Underdark Golden Hall"
mappath = 'goldhall.dmm'
cost = 15
allow_duplicates = FALSE
/*
/datum/map_template/underdark/boss_mob
name = "Underdark Boss Mob Spawn"
@@ -0,0 +1,20 @@
"a" = (/turf/simulated/wall/gold,/area/mine/explored/underdark)
"b" = (/turf/template_noop,/area/mine/explored/underdark)
"c" = (/obj/structure/window/basic/full,/turf/simulated/floor/tiled/kafel_full/yellow/virgo3b,/area/mine/explored/underdark)
"d" = (/turf/simulated/floor/tiled/kafel_full/yellow/virgo3b,/area/mine/explored/underdark)
"e" = (/obj/item/weapon/reagent_containers/food/condiment/ketchup,/turf/simulated/floor/tiled/kafel_full/yellow/virgo3b,/area/mine/explored/underdark)
"f" = (/obj/item/clothing/suit/storage/toggle/hoodie/blue,/obj/item/clothing/shoes/slippers_worn,/turf/simulated/floor/tiled/kafel_full/yellow/virgo3b,/area/mine/explored/underdark)
"g" = (/obj/effect/decal/remains,/obj/item/weapon/ore/bluespace_crystal,/turf/simulated/floor/tiled/kafel_full/yellow/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
aabbaaaccaaabba
bbbbbbddddbbbbb
abbbdaddddadbbb
bbbbdddddddddbb
bbbddddddedddbb
bbbdddddfgdddbb
bbddddbbddddddb
bddddabbbdadddd
bbdddddbbdddddb
bbbbaaabbaaabbb
"}
@@ -9,8 +9,6 @@
poison_chance = 20
// Underdark mob spawners
/obj/tether_away_spawner/underdark_normal
name = "Underdark Normal Spawner"
@@ -46,4 +44,17 @@
//guard = 70
mobs_to_pick_from = list(
/mob/living/simple_mob/vore/aggressive/dragon = 1
)
)
//POI STUFF
//Goldhall
VIRGO3B_TURF_CREATE(/turf/simulated/floor/tiled/kafel_full/yellow)
/obj/item/weapon/reagent_containers/food/condiment/ketchup/Initialize()
. = ..()
reagents.add_reagent("ketchup", 50)
//
@@ -1,15 +1,13 @@
"a" = (/turf/template_noop,/area/template_noop)
"a" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/virgo3b,/area/mine/explored/underdark)
"b" = (/turf/simulated/wall/iron,/area/mine/explored/underdark)
"c" = (/turf/template_noop,/area/mine/explored/underdark)
"d" = (/turf/simulated/mineral/floor/virgo3b,/area/mine/explored/underdark)
(1,1,1) = {"
aaaaaaaa
abbbbcca
abdddcca
abddddca
abddddba
abddddba
abbbbbba
aaaaaaaa
bbbbcc
baddcc
badddc
baaddb
baaadb
bbbbbb
"}
+1 -1
View File
@@ -2361,7 +2361,6 @@
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\gaslamp_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\goose_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\mimic_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\snake_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\space.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\space\worm.dm"
@@ -2426,6 +2425,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\vore\hippo.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\horse.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\jelly.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\mimic.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\panther.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\rat.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\redpanda.dm"