[MODULAR] Marked One Changes Volume 4: He's Literally Me (#21378)

* look out he's got a CANNON

* dragonslayer 64x64 inhands

* dragonslayer edits

* woop woop offset fixes

* cannon removal for a later date because wow that's buggy

* higher roll cost and lowered invuln time to prevent invincible semi-functional flight

* even higher roll stamcost because wow that should be more than 3 or 6
This commit is contained in:
dawsonkeyes
2023-06-14 01:17:13 +00:00
committed by GitHub
parent 4849de9221
commit 40db532520
4 changed files with 21 additions and 22 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 914 B

@@ -116,8 +116,10 @@
icon = 'modular_skyrat/modules/gladiator/icons/dragonslayer.dmi'
icon_state = "dragonslayer"
inhand_icon_state = "dragonslayer"
lefthand_file = 'modular_skyrat/modules/gladiator/icons/dragonslayer_inhand_R.dmi'
righthand_file = 'modular_skyrat/modules/gladiator/icons/dragonslayer_inhand_L.dmi' //confusing, right? hahahaha im not fixing those fucken dmis
lefthand_file = 'modular_skyrat/master_files/icons/mob/64x64_lefthand.dmi'
righthand_file = 'modular_skyrat/master_files/icons/mob/64x64_righthand.dmi'
inhand_x_dimension = 64
inhand_y_dimension = 64
hitsound = 'modular_skyrat/master_files/sound/weapons/bloodyslice.ogg'
w_class = WEIGHT_CLASS_HUGE
slot_flags = null
@@ -130,10 +132,10 @@
sharpness = SHARP_EDGED
item_flags = NO_BLOOD_ON_ITEM
// aughhghghgh this really should be elementized but this works for now
var/faction_bonus_force = 100
var/faction_bonus_force = 60
var/static/list/nemesis_factions = list("mining", "boss")
/// how much stamina does it cost to roll
var/roll_stamcost = 15
var/roll_stamcost = 9
/// how far do we roll?
var/roll_range = 3
@@ -157,7 +159,7 @@
return
var/turf/where_to = get_turf(target)
user.apply_damage(damage = roll_stamcost, damagetype = STAMINA)
user.Immobilize(0.8 SECONDS) // you dont get to adjust your roll
user.Immobilize(0.1 SECONDS) // you dont get to adjust your roll
user.throw_at(where_to, range = roll_range, speed = 1, force = MOVE_FORCE_NORMAL)
user.apply_status_effect(/datum/status_effect/dodgeroll_iframes)
playsound(user, SFX_BODYFALL, 50, TRUE)
@@ -168,7 +170,7 @@
id = "dodgeroll_dodging"
alert_type = null
status_type = STATUS_EFFECT_REFRESH
duration = 0.8 SECONDS // worth tweaking?
duration = 1 SECONDS // worth tweaking?
/datum/status_effect/dodgeroll_iframes/on_apply()
RegisterSignal(owner, COMSIG_HUMAN_CHECK_SHIELDS, PROC_REF(whiff))
@@ -33,6 +33,8 @@
move_to_delay = 2.25
pixel_x = -32
pixel_y = -9
base_pixel_x = -32
base_pixel_y = -9
wander = FALSE
ranged = 1
ranged_cooldown_time = 30
@@ -110,10 +112,7 @@
/// Gets him mad at you if you're a species he's not racist towards, and provides the 50% to block attacks in the first and fourth phases
/mob/living/simple_animal/hostile/megafauna/gladiator/adjustHealth(amount, updating_health, forced)
get_angry()
if(spinning)
balloon_alert_to_viewers("damage blocked!")
return FALSE
else if(prob(block_chance) && (phase == 1) && !stunned)
if(prob(block_chance) && (phase == 1) && !stunned)
balloon_alert_to_viewers("damage blocked!")
return FALSE
else if(prob(block_chance) && (phase == 4) && !stunned)
@@ -206,7 +205,6 @@
if(anger_timer_id)
deltimer(anger_timer_id)
anger_timer_id = addtimer(CALLBACK(src, PROC_REF(get_calm)), MARKED_ONE_ANGER_DURATION, TIMER_STOPPABLE)
balloon_alert_to_viewers("angered!")
/// Makes the Marked One a sleepy boy that don't wanna hurt nobody. He starts like this and progresses to his hostile state after seeing an ash walker or being punched in the noggin.
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/get_calm()
@@ -286,7 +284,7 @@
if(phase == MARKED_ONE_SECOND_PHASE)
phase = MARKED_ONE_THIRD_PHASE
INVOKE_ASYNC(src, PROC_REF(charge), target, 21)
ranged_cooldown += 8 SECONDS
ranged_cooldown += 5 SECONDS
rapid_melee = 4
melee_damage_upper = 25
melee_damage_lower = 25
@@ -355,7 +353,7 @@
sleep(1)
spinning = FALSE
/// The Marked One's charge has an instant travel time, but takes a moment to power-up, allowing you to get behind cover to stun him if he hits a wall. Only ever called when a phase change occurs, as it hardstuns if it lands
/// The Marked One's charge is extremely quick, but takes a moment to power-up, allowing you to get behind cover to stun him if he hits a wall. Only ever called when a phase change occurs, as it stuns if it lands
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/charge(atom/target, range = 1)
face_atom(target)
var/static/list/charge_messages = list(
@@ -375,7 +373,7 @@
charging = TRUE
update_phase()
/// Discharge damages the Marked One and stuns him when he slams into a wall whilst charging
/// Discharge stuns the marked one momentarily after landing a charge into a wall or a person
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/discharge(modifier = 1)
stunned = TRUE
charging = FALSE
@@ -474,9 +472,8 @@
INVOKE_ASYNC(src, PROC_REF(swordslam))
ranged_cooldown += 2 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(bone_knife_throw), target)
INVOKE_ASYNC(src, PROC_REF(teleport), target)
ranged_cooldown += 2 SECONDS
INVOKE_ASYNC(src, PROC_REF(charge), target, 21)
ranged_cooldown += 5 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(teleport), target)
ranged_cooldown += 0.5 SECONDS
@@ -487,11 +484,11 @@
INVOKE_ASYNC(src, PROC_REF(spinattack))
ranged_cooldown += 3 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(swordslam))
ranged_cooldown += 2 SECONDS
INVOKE_ASYNC(src, PROC_REF(charge), target, 21)
ranged_cooldown += 4 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(bone_knife_throw), target)
INVOKE_ASYNC(src, PROC_REF(teleport), target)
INVOKE_ASYNC(src, PROC_REF(swordslam))
ranged_cooldown += 2 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(bone_knife_throw), target)
@@ -513,9 +510,9 @@
INVOKE_ASYNC(src, PROC_REF(stomp))
ranged_cooldown += 0.5 SECONDS
else
INVOKE_ASYNC(src, PROC_REF(teleport), target)
INVOKE_ASYNC(src, PROC_REF(charge), target, 21)
INVOKE_ASYNC(src, PROC_REF(stomp))
ranged_cooldown += 0.5 SECONDS
ranged_cooldown += 2.5 SECONDS
#undef MARKED_ONE_STUN_DURATION
#undef MARKED_ONE_ANGER_DURATION