# Strength/Mass-based kick/jump

Takes a lot of movement points, can be used to ‘kick’ away a single zombie, (perhaps stun, and this would provide a more ‘legit’ alternative to bush-kiting), but it takes the mass of the player and the mass of the zombie into consideration.

So, With a minimum strength level the player could kick a single zombie away a single tile.
A Child zombie would be kicked twice as far, but a fat zombie would have a large chance for failure.
Or, the player themselves could be pushed backwards instead.
With higher mass disparities & strength, (saaay, a 30-strength bionic commando kicking a 3-ton truck), the player could send themselves flying multiple tiles at a time. A nifty feature for high-strength bionic commandos or beefy-but-light mutants.
Another thing to consider: health of the kicked object. Gibbing child-zeds, kicking holes in walls, bending car doors.

So, the math…
It’d need to have a minimum strength to do anything
The player would have to be subject to it as well.
There’d have to be a random chance in there as well to account for failures against enemies that are just barely within the character’s strength/mass bracket.
Distance pushed dependent on both strength & mass.
Health of pushed object.

[spoiler=If my life literally depended on me somehow writing the code for this…]
If monstermass-playermass >1 ;If the monster weighs more
set player.movement to (opposite direction) speed=(player.basemass*(1+(strength-minstrengthtoseefasterpushes)))/player.mass;So, the distance being pushed will default to 1 tile all else being normal. However, it gets bonus distance proportional to the strength above the minimum strength required for faster pushes. This could probably be tweaked better, but in the meantime it means a stronger player can launch themselves farther. However however, this gets a boost/damper based on player mass- if the player is average-sized, it will be negated, (if basemass=mass, then basemass/mass=1). But if the player is larger or smaller than normal they are shoved accordingly farther or lesser, (if basemass>mass, distance is multiplied by basemass(larger)/mass(smaller)…meanwhile if basemass<mass, distance is multiplied by basemass(smaller)/mass(larger)). End result, hulking bear-men can’t launch themselves nearly as easily, but sprightly bird-men can swish-off at twice the speed.
Start objdmgcalc
end
If monstermass-playermass >=-1 and <=1 ;If they’re about the same weight
Get randnumber
If randnumber >=75
set player.movement to (opposite direction) speed=1
Start objdmgcalc
end
If randnumber <75 and >25
Start objdmgcalc
end
If randnumber <=25
set monster.movement to (direction) speed=1
Start objdmgcalc
end
If Monstermass-playermass <-1 ;If the player weighs more
Start objdmgcalc
If objbroken !=1
set monster.movement to (direction) speed=(1+(strength-minstrengthtoseefasterpushes))
end
If objbroken =1
set monster.movement to (direction) speed=(1+(.5*(strength-minstrengthtoseefasterpushes)));If the player breaks what they’re kicking, energy is dispersed into the breakage and it doesn’t go as far. (so an intact zombie-child will fly 10 tiles, but a gibbed-one will only go 5)
set objbroken to 0
end

[objdmgcalc]
If player.strength < objhlth ;If the player’s strength isn’t high enough to damage the object, don’t calculate how much damage is done
end
else
deal ((player.strength/objhlth)-1)*totalobjhp to obj; (Damage is done proportional to how vastly exceeded the ‘minimum strength requirement to deal damage’ is exceeded. 150% required = 50% total health dealt in damage)
If player.strength/objhlth >=2 ;If the damage = 100% of the object’s health, it gets ‘broken’ and doesn’t fly as far
set objbroken to 1
end
end
end [/spoiler]

Well… how would we find out mass? And what about armor? A guy in large armor could kick the shit out of you even if you tried fighting back and the guy inside was below-average on body mass/strength.

Presumably, obj mass would be a hidden attribute attached to whatever is kickable, (Everything). Perhaps augmented with total equipment mass.

Perhaps heavy armors could multiply an npc’s base objhlth by a certain factor.

PC mass would probably be a value based on ST (that’s what we currently use to determine your relative size) plus inventory. Tanksuit power armor might add bonuses; the Rivtech dynamic armor probably would not.

Mm, I wouldn’t base it too heavily on strength- I’d have a ‘normal’ value for most humans & augment it with strength, (8 being a 1x multiplier, 4 being a .75 multiplier, 12 being a 1.25x multiplier). And then mutations could change that value to a ‘small’, ‘large’, ‘very large’ or ‘hulking’ base-stat.

So a 12ft-tall bear-man would appropriately be as tough to move as a semi.
(and therefore, with the proper strength-stat, be able to kick semis out of the way)
(though, problem with my little equation there, it doesn’t scale well with a massive bear dude that is just barely too light to shove that Abrams tank & therefore flies off in the other direction at mach2…)

-AAaand edited. Now the player should get a bonus if they’re smaller-than-average and a malus if they’re larger-than-average if they attempt to launch themselves off a heavier object. Bear-man won’t go flying away from the tank.

Hrm. My bionic patient might have some fun with a new hit and run method. Dance around the zombies, fire up the hydraulics, kick off, and watch them try to catch up while I open fire from further out. Repeat as needed.

Heh, (as-proposed), to actually kick yourself away you’d have to be significantly lighter than them. In the meanwhile, using your hydraulics to kick would only deal damage & features only a 50% chance to push you or it a single space away.
Perhaps there could be a couple more ‘mass-equivalent’ brackets for strength, so you could fling both yourself and the critter away & further…

If you’re a bird mutant with hydraulic muscles however, that strategy would work marvelously. Perhaps wings would provide a bonus.

Well, it does depend on what the player’s mass is, and how it varies. Obviously gear would have some impact, but what about the player’s body itself?

Besides, in an ideal world I’d be able to kick off of buildings or vehicles.

I think vehicles already have a weight of sorts, & walls can probably be treated as infini-weight.

If you look at the 'code bit, what I suggested was taking the player’s weight & the object’s weight and finding the difference. If the object weighs more, the player is pushed away. If the player & the object are roughly the same weight, there’s a 50% chance of nothing happening aside from damage, 25% chance the object is pushed one tile and 25% chance the player is pushed one tile. If the player weighs more, the object is pushed away.

-e
Now with more notes.

Oh if only I could draw worth a shit…

But yeah, I think having a kick feature like the one you’re talking about being implimented would be pretty neat, give my cyber-Valkyrie something else to use to pulp undead faces into mush.

Lazycat actually had some cool code for both of these.

Basically, you would have a run-up as well as an actual jumped distance, both of which would be listed when you started a jump. Kinda unintuitive, but it works.

Tnere’s actually one place where we evaluate player weight already, to add player weight into vehicle weight distribution calculations. If we were using it elsewhere we’d slurp that code into a player::weight() method.