Merge pull request #2129 from BlackMajor/bigdragon

New mob: Large Dragon, and some changes.
This commit is contained in:
Nadyr
2021-06-09 18:35:02 -04:00
committed by GitHub
15 changed files with 4381 additions and 177 deletions
@@ -40,7 +40,8 @@
"Webslinger Giant Spider" = /mob/living/simple_mob/animal/giant_spider/webslinger,
"Frost Giant Spider" = /mob/living/simple_mob/animal/giant_spider/frost,
"Nurse Giant Spider" = /mob/living/simple_mob/animal/giant_spider/nurse/eggless,
"Giant Spider Queen" = /mob/living/simple_mob/animal/giant_spider/nurse/queen/eggless
"Giant Spider Queen" = /mob/living/simple_mob/animal/giant_spider/nurse/queen/eggless,
"Lesser Large Dragon" = /mob/living/simple_mob/vore/bigdragon/friendly/maintpred //CHOMPStation add.
)
/obj/structure/ghost_pod/ghost_activated/maintpred/create_occupant(var/mob/M)
@@ -105,6 +105,10 @@
if(src == M) //Don't eat YOURSELF dork
//ai_log("vr/won't eat [M] because it's me!", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
//CHOMPSTATION add
if(!M.devourable) //Why was there never a check for edibility to begin with
return 0
//CHOMPSTATION add end
if(vore_ignores_undigestable && !M.digestable) //Don't eat people with nogurgle prefs
//ai_log("vr/wont eat [M] because I am picky", 3) //VORESTATION AI TEMPORARY REMOVAL
return 0
File diff suppressed because it is too large Load Diff
@@ -7,13 +7,13 @@
icon_dead = "leopardmander-dead"
icon_living = "leopardmander"
icon_state = "leopardmander"
faction = "sif"
faction = "neutral"
meat_amount = 40 //I mean...
meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat
old_x = -48
old_y = 0
melee_damage_lower = 20
melee_damage_upper = 15
melee_damage_lower = 10
melee_damage_upper = 25
friendly = list("nudges", "sniffs on", "rumbles softly at", "slobberlicks")
default_pixel_x = -48
pixel_x = -48
@@ -22,14 +22,11 @@
response_disarm = "shoves"
response_harm = "bops"
movement_cooldown = 2
harm_intent_damage = 10
melee_damage_lower = 10
melee_damage_upper = 25 //He's a lot bigger than you! Probably! Just don't be mean to him~
maxHealth = 1500
attacktext = list("chomped")
see_in_dark = 8
minbodytemp = 0
ai_holder_type = /datum/ai_holder/simple_mob/retaliate
ai_holder_type = /datum/ai_holder/simple_mob/healbelly
max_buckled_mobs = 1
mount_offset_y = 32
mount_offset_x = -16
@@ -37,11 +34,18 @@
buckle_movable = TRUE
buckle_lying = FALSE
vore_icons = SA_ICON_LIVING
var/last_inject = 0 //Variable which tracks venom injection frequency
var/inject_interval = 5 MINUTES //Variable which determines time between venom injections
var/venom_chance = 50 //Chance per hit of injecting venom
var/venom_dose = 5 //Amount of each reagent injection
vore_bump_chance = 50
vore_digest_chance = 0
vore_escape_chance = 50
vore_pounce_chance = 100
vore_active = 1
vore_icons = 4
vore_capacity = 4
swallowTime = 100
vore_ignores_undigestable = TRUE
vore_default_mode = DM_HEAL
vore_pounce_maxhealth = 125
vore_bump_emote = "tries to snap up"
/datum/category_item/catalogue/fauna/leopardmander
name = "Sivian Fauna - Va'aen Drake"
@@ -63,46 +67,10 @@
verbs |= /mob/living/proc/toggle_rider_reins
movement_cooldown = 2
/mob/living/simple_mob/vore/leopardmander/New() //Set to max nutrition on spawn since heal belly drains nutrition to work.
..()
src.adjust_nutrition(src.max_nutrition)
/mob/living/simple_mob/vore/leopardmander/Initialize()
..()
src.adjust_nutrition(src.max_nutrition)
/mob/living/simple_mob/vore/leopardmander/apply_melee_effects(atom/A)
if(isliving(A) && (world.time >= (last_inject + inject_interval)))
var/mob/living/L = A
if(L.reagents && prob(venom_chance))
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
if(L.can_inject(src, null, target_zone))
last_inject = world.time
if(!L.allowmobvore) //If we can't eat them, stop mauling them.
ai_holder.lose_target() //Call this first so the attacks stop if the reagent proc runtimes.
L.reagents.add_reagent("bicaridine", venom_dose) //If we can't eat them, give them some bicar to compensate for no heal belly.
to_chat(L, "<span class='warning'>You feel a sudden warmth spreading through your wound!</span>")
L.reagents.add_reagent("zombiepowder", venom_dose) //Paralyze and heal. Noms should follow because mob mechanics.
L.reagents.add_reagent("myelamine", venom_dose)
L.reagents.add_reagent("osteodaxon", venom_dose)
/mob/living/simple_mob/vore/leopardmander
vore_bump_chance = 50
vore_digest_chance = 0
vore_escape_chance = 50
vore_pounce_chance = 15
vore_active = 1
vore_icons = 4
vore_capacity = 4
swallowTime = 100
vore_ignores_undigestable = TRUE
vore_default_mode = DM_HEAL
vore_pounce_maxhealth = 125
vore_bump_emote = "tries to snap up"
/mob/living/simple_mob/vore/leopardmander/init_vore()
if(!voremob_loaded)
return
@@ -144,8 +112,6 @@
name = "blue leopardmander"
desc = "A huge, pale blue, salamander-like drake. They are best known for their rarity, their voracity, their very potent paralyzing, yet somehow very beneficial venom, and their healing stomach. This one seems to have had a rare genetic mutation, making its skin appear blue."
tt_desc = "Draconis Va'aen"
faction = "sif"
icon = 'icons/mob/vore128x64_ch.dmi'
icon_dead = "leopardmander_blue-dead"
icon_living = "leopardmander_blue"
icon_state = "leopardmander_blue"
@@ -154,8 +120,6 @@
name = "glass-belly leopardmander"
desc = "A huge salamander-like drake. They are best known for their rarity, their voracity, their very potent paralyzing venom, and their healing stomach. This one seems to have had a rare genetic mutation, making its entire underside somewhat translucent! A dazzling pink glow comes from within its soft, squishy underside."
tt_desc = "Draconis Va'essa Lucent"
faction = "sif"
icon = 'icons/mob/vore128x64_ch.dmi'
icon_dead = "leopardmander_exotic-dead"
icon_living = "leopardmander_exotic"
icon_state = "leopardmander_exotic"
+18 -1
View File
@@ -39,6 +39,9 @@
var/liquid_fullness4_messages = FALSE
var/liquid_fullness5_messages = FALSE
var/vorespawn_blacklist = FALSE
var/autotransferchance = 0 // % Chance of prey being autotransferred to transfer location
var/autotransferwait = 10 // Time between trying to transfer.
var/autotransferlocation // Place to send them
var/list/fullness1_messages = list(
"%pred's %belly looks empty"
@@ -285,4 +288,18 @@
if("full5")
fullness5_messages = raw_list
return
return
/obj/belly/proc/check_autotransfer(var/prey, var/autotransferlocation)
if(autotransferlocation && (autotransferchance > 0) && (prey in contents))
if(prob(autotransferchance))
var/obj/belly/dest_belly
for(var/obj/belly/B in owner.vore_organs)
if(B.name == autotransferlocation)
dest_belly = B
break
if(dest_belly)
transfer_contents(prey, dest_belly)
else
// Didn't transfer, so wait before retrying
addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, prey, autotransferlocation), autotransferwait)
+5
View File
@@ -270,6 +270,11 @@
//Stop AI processing in bellies
if(M.ai_holder)
M.ai_holder.go_sleep()
//CHOMPStation edit start
if(!owner.client) //Intended for simple mobs
if(autotransferlocation != null && autotransferchance > 0)
addtimer(CALLBACK(src, /obj/belly/.proc/check_autotransfer, thing, autotransferlocation), autotransferwait)
//CHOMPStation edit end
// Called whenever an atom leaves this belly
/obj/belly/Exited(atom/movable/thing, atom/OldLoc)
Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 KiB

After

Width:  |  Height:  |  Size: 665 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -49,6 +49,7 @@
#include "lonewolf.dmm"
#include "emptycabin.dmm"
#include "dogbase.dmm"
#include "drgnplateu.dmm"
#endif
// The 'wilderness' is the endgame for Explorers. Extremely dangerous and far away from help, but with vast shinies.
@@ -389,4 +390,10 @@
name = "Syndi Sniper"
desc = "Syndicate watch tower, deadly but secluded"
mappath = 'maps/submaps/surface_submaps/wilderness/syndisniper.dmm'
cost = 5
cost = 5
/datum/map_template/surface/wilderness/deep/drgnplateu
name = "Dragon Plateu"
desc = "A dangerous plateu of cliffs home to a rampant gold hoarding dragon"
mappath = 'maps/submaps/surface_submaps/wilderness/drgnplateu.dmm'
cost = 15
@@ -207,3 +207,7 @@
/area/submap/SyndiSniper
name = "POI - Syndi Sniper"
ambience = AMBIENCE_SIF
/area/submap/drgnplateu
name = "POI - Dragon Plateu"
ambience = AMBIENCE_SIF
Binary file not shown.
+1
View File
@@ -3227,6 +3227,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\subtypes_vr.dm"
#include "code\modules\mob\living\simple_mob\subtypes\slime\xenobio\xenobio.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\bee.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\bigdragon_ch.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\c_pet.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\catgirl.dm"
#include "code\modules\mob\living\simple_mob\subtypes\vore\chungus.dm"