# Strength/Mass-based kick/jump

**URL:** https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208
**Category:** The Drawing Board
**Created:** [May 21, 2014, 11:00pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208 "2014-05-21T23:00:19Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![GrizzlyAdamz](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/grizzlyadamz/32/8056_2.png) [@GrizzlyAdamz](https://discourse.cataclysmdda.org/u/GrizzlyAdamz)
#### Post date: [May 21, 2014, 11:00pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/1 "2014-05-21T23:00:19Z")

</div>

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]

---

<div class="post-metadata">

### Author: ![FunsizeNinja123](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/funsizeninja123/32/118_2.png) [@FunsizeNinja123](https://discourse.cataclysmdda.org/u/FunsizeNinja123)
#### Post date: [May 21, 2014, 11:03pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/2 "2014-05-21T23:03:44Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![GrizzlyAdamz](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/grizzlyadamz/32/8056_2.png) [@GrizzlyAdamz](https://discourse.cataclysmdda.org/u/GrizzlyAdamz)
#### Post date: [May 21, 2014, 11:07pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/3 "2014-05-21T23:07:46Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![KA101](https://avatars.discourse-cdn.com/v4/letter/k/278dde/32.png) [@KA101](https://discourse.cataclysmdda.org/u/KA101)
#### Post date: [May 21, 2014, 11:12pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/4 "2014-05-21T23:12:24Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![GrizzlyAdamz](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/grizzlyadamz/32/8056_2.png) [@GrizzlyAdamz](https://discourse.cataclysmdda.org/u/GrizzlyAdamz)
#### Post date: [May 21, 2014, 11:17pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/5 "2014-05-21T23:17:02Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Khrysanth](https://avatars.discourse-cdn.com/v4/letter/k/bbce88/32.png) [@Khrysanth](https://discourse.cataclysmdda.org/u/Khrysanth)
#### Post date: [May 22, 2014, 12:23am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/6 "2014-05-22T00:23:32Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![GrizzlyAdamz](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/grizzlyadamz/32/8056_2.png) [@GrizzlyAdamz](https://discourse.cataclysmdda.org/u/GrizzlyAdamz)
#### Post date: [May 22, 2014, 12:41am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/7 "2014-05-22T00:41:05Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Khrysanth](https://avatars.discourse-cdn.com/v4/letter/k/bbce88/32.png) [@Khrysanth](https://discourse.cataclysmdda.org/u/Khrysanth)
#### Post date: [May 22, 2014, 2:33am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/8 "2014-05-22T02:33:31Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![GrizzlyAdamz](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/grizzlyadamz/32/8056_2.png) [@GrizzlyAdamz](https://discourse.cataclysmdda.org/u/GrizzlyAdamz)
#### Post date: [May 22, 2014, 3:25am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/9 "2014-05-22T03:25:33Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex016/uploads/cataclysmdda/original/1X/21b5d044e8473b25d0bf905d60477e25f6fbe0cf.png) [@system](https://discourse.cataclysmdda.org/u/system)
#### Post date: [May 22, 2014, 3:40am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/10 "2014-05-22T03:40:21Z")

</div>

> [@GrizzlyAdamz](#):
>
> a massive bear dude that is just barely too light to shove that Abrams tank & therefore flies off in the other direction at mach2…)

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.

---

<div class="post-metadata">

### Author: ![kilozombie](https://avatars.discourse-cdn.com/v4/letter/k/e274bd/32.png) [@kilozombie](https://discourse.cataclysmdda.org/u/kilozombie)
#### Post date: [May 22, 2014, 4:41am UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/11 "2014-05-22T04:41:20Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![kevin.granade](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/kevin.granade/32/1316_2.png) [@kevin.granade](https://discourse.cataclysmdda.org/u/kevin.granade)
#### Post date: [May 22, 2014, 4:57pm UTC](https://discourse.cataclysmdda.org/t/strength-mass-based-kick-jump/6208/12 "2014-05-22T16:57:13Z")

</div>

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.
