diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm index aa06fa2e78..7e69298b69 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon_vore.dm @@ -25,7 +25,7 @@ desc = "The maw of the dreaded Ash drake closes around you, engulfing you into a swelteringly hot, disgusting enviroment. The acidic saliva tingles over your form while that tongue pushes you further back...towards the dark gullet beyond." vore_verb = "scoop" vore_sound = "Stomach Move" - swallow_time = 20 + swallow_time = 60 escapechance = 25 // From above, will transfer into gullet transferchance = 25 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm index 212b8d4d17..6af5174ec5 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm @@ -81,25 +81,18 @@ if(. && isliving(target)) var/mob/living/L = target if(L.stat != DEAD) - if(vore_active == TRUE && L.devourable == TRUE) - if(L.Adjacent(targets_from)) - dragon_feeding(src,L) - else if(!client && ranged && ranged_cooldown <= world.time) - OpenFire() - if(L.loc == src.contents) - LoseTarget() - return 0 - - else if(!client && ranged && ranged_cooldown <= world.time) + if(!client && ranged && ranged_cooldown <= world.time) OpenFire() + else if(L.stat >= SOFT_CRIT) if(vore_active == TRUE && L.devourable == TRUE) - if(L.Adjacent(targets_from)) + if(isliving(target) && !target.Adjacent(targets_from)) + return + else dragon_feeding(src,L) - - if(L.loc == src.contents) - LoseTarget() - return 0 + if(L.loc == src.contents) + LoseTarget() + return 0 else devour(L) diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index d308f2c1bc..a559d42c20 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -133,7 +133,11 @@ //Sanity if(!user || !prey || !pred || !istype(belly) || !(belly in pred.vore_organs)) testing("[user] attempted to feed [prey] to [pred], via [lowertext(belly.name)] but it went wrong.") - return + return FALSE + + if(istype(pred, /mob/living/simple_animal/hostile/megafauna/dragon)) + if(isliving(prey) && !prey.Adjacent(pred)) + return FALSE // The belly selected at the time of noms var/attempt_msg = "ERROR: Vore message couldn't be created. Notify a dev. (at)" @@ -144,6 +148,9 @@ attempt_msg = text("[] starts to [] [] into their []!",pred,lowertext(belly.vore_verb),prey,lowertext(belly.name)) success_msg = text("[] manages to [] [] into their []!",pred,lowertext(belly.vore_verb),prey,lowertext(belly.name)) + if(!prey.Adjacent(user)) // let's doublecheck for sanity's sake. + return FALSE + // Announce that we start the attempt! user.visible_message(attempt_msg) @@ -161,6 +168,7 @@ pred.log_message("[key_name(pred)] ate [key_name(prey)].", LOG_ATTACK) prey.log_message("[key_name(prey)] was eaten by [key_name(pred)].", LOG_ATTACK) return TRUE + // // Master vore proc that actually does vore procedures // @@ -169,18 +177,16 @@ //Sanity if(!user || !prey || !pred || !istype(belly) || !(belly in pred.vore_organs)) testing("[user] attempted to feed [prey] to [pred], via [lowertext(belly.name)] but it went wrong.") - return + return FALSE + if (!prey.devourable) to_chat(user, "This can't be eaten!") - return + return FALSE + // The belly selected at the time of noms var/attempt_msg = "ERROR: Vore message couldn't be created. Notify a dev. (at)" var/success_msg = "ERROR: Vore message couldn't be created. Notify a dev. (sc)" -/* //Final distance check. Time has passed, menus have come and gone. Can't use do_after adjacent because doesn't behave for held micros - var/user_to_pred = get_dist(get_turf(user),get_turf(pred)) - var/user_to_prey = get_dist(get_turf(user),get_turf(prey)) */ - // Prepare messages if(user == pred) //Feeding someone to yourself attempt_msg = text("[] is attemping to [] [] into their []!",pred,lowertext(belly.vore_verb),prey,lowertext(belly.name)) @@ -212,7 +218,6 @@ // Actually shove prey into the belly. belly.nom_mob(prey, user) -// user.update_icons() stop_pulling() // Flavor handling