*/
void Person::DoDamage(float howmuch)
{
- // subtract health (temporary?)
- if (!Tutorial::active)
- damage += howmuch / power;
// stats?
- if (id != 0)
- damagedealt += howmuch / power;
- if (id == 0)
+ if (id == 0) {
damagetaken += howmuch / power;
+ } else {
+ damagedealt += howmuch / power;
+ }
// reset bonuses
- if (id == 0 && (bonus == solidhit || bonus == twoxcombo || bonus == threexcombo || bonus == fourxcombo || bonus == megacombo))
+ if (id == 0 && (bonus == solidhit || bonus == twoxcombo || bonus == threexcombo || bonus == fourxcombo || bonus == megacombo)) {
bonus = 0;
+ }
+
// subtract health
- if (!Tutorial::active)
+ if (!Tutorial::active) {
+ damage += howmuch / power;
permanentdamage += howmuch / 2 / power;
- if (!Tutorial::active)
superpermanentdamage += howmuch / 4 / power;
+ }
// visual effects
if (permanentdamage > damagetolerance / 2 && permanentdamage - howmuch < damagetolerance / 2 && Random() % 2)
DoBlood(1, 255);
if ((permanentdamage > damagetolerance * .8 && Random() % 2 && !deathbleeding) || spurt)
DoBlood(1, 255);
spurt = 0;
- if (id == 0)
+ if (id == 0) {
camerashake += howmuch / 100;
- if (id == 0 && ((howmuch > 50 && damage > damagetolerance / 2)))
- blackout = damage / damagetolerance;
- if (blackout > 1)
- blackout = 1;
+ if ((howmuch > 50 && damage > damagetolerance / 2)) {
+ blackout = damage / damagetolerance;
+ if (blackout > 1) {
+ blackout = 1;
+ }
+ }
+ }
// cancel attack?
if (aitype == passivetype && damage < damagetolerance && ((!Tutorial::active || cananger) && hostile))
}
// play sounds
- if (!Tutorial::active || id == 0)
+ if (!Tutorial::active || id == 0) {
if (speechdelay <= 0 && !dead && aitype != playercontrolled) {
int whichsound = -1;
addEnvSound(coords);
}
}
+ }
speechdelay = .3;
}
}
if ((Animation::animations[animTarget].attack == normalattack || animTarget == walljumprightkickanim || animTarget == walljumpleftkickanim) && (!feint) && (victim->skeleton.free != 2 || animTarget == killanim || animTarget == dropkickanim || animTarget == crouchstabanim || animTarget == swordgroundstabanim || animTarget == staffgroundsmashanim)) {
if (animTarget == spinkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) {
- if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && 3 && Animation::animations[victim->animTarget].height != lowheight) {
+ if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) {
escapednum = 0;
if (id == 0)
camerashake += .4;
}
if (animTarget == wolfslapanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) {
- if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && 3 && Animation::animations[victim->animTarget].height != lowheight) {
+ if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) {
escapednum = 0;
if (id == 0)
camerashake += .4;
if (hasvictim)
if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 4.5 &&/*Animation::animations[victim->animTarget].height!=lowheight&&*/victim->animTarget != dodgebackanim && victim->animTarget != rollanim) {
escapednum = 0;
- if (!Tutorial::active)
+ if (!Tutorial::active) {
victim->DoBloodBig(1.5 / victim->armorhigh, 225);
+ }
award_bonus(id, Slicebonus);
if (!Tutorial::active) {
if (aitype != playercontrolled)
weaponmissdelay = .6;
- if (!Tutorial::active)
- if (bloodtoggle && !weapons[weaponids[weaponactive]].bloody)
+ if (!Tutorial::active) {
+ if (bloodtoggle && !weapons[weaponids[weaponactive]].bloody) {
weapons[weaponids[weaponactive]].bloody = 1;
- if (!Tutorial::active)
+ }
weapons[weaponids[weaponactive]].blooddrip += 3;
+ }
XYZ footvel, footpoint;
footvel = 0;
} else {
footpoint = DoRotation((victim->jointPos(abdomen) + victim->jointPos(neck)) / 2, 0, victim->yaw, 0) * victim->scale + victim->coords;
}
- if (!Tutorial::active) {
- if (bloodtoggle)
+ if (Tutorial::active) {
+ Sprite::MakeSprite(cloudimpactsprite, footpoint, footvel, 1, 1, 1, .6, .3);
+ } else {
+ if (bloodtoggle) {
Sprite::MakeSprite(cloudimpactsprite, footpoint, footvel, 1, 0, 0, .6, .3);
+ }
footvel = DoRotation(facing, 0, 90, 0) * .8;
- //footvel.y-=.3;
Sprite::MakeSprite(bloodsprite, footpoint, DoRotation(footvel * 7, (float)(Random() % 20), (float)(Random() % 20), 0), 1, 1, 1, .05, .9);
Sprite::MakeSprite(bloodsprite, footpoint, DoRotation(footvel * 3, (float)(Random() % 20), (float)(Random() % 20), 0), 1, 1, 1, .05, .9);
Sprite::MakeSprite(bloodflamesprite, footpoint, footvel * 5, 1, 1, 1, .2, 1);
Sprite::MakeSprite(bloodflamesprite, footpoint, footvel * 2, 1, 1, 1, .2, 1);
}
- if (Tutorial::active) {
- Sprite::MakeSprite(cloudimpactsprite, footpoint, footvel, 1, 1, 1, .6, .3);
- }
victim->DoDamage(damagemult * 0);
}
}
victim->DoBloodBig(2 / victim->armorhigh, 185);
victim->deathbleeding = 1;
emit_sound_at(swordslicesound, victim->coords);
- }
- //victim->jointVel(abdomen)+=relative*damagemult*200;
- if (!Tutorial::active) {
victim->frameTarget = 0;
victim->animTarget = staggerbackhardanim;
victim->targetyaw = targetyaw + 180;
victim->target = 0;
- }
-
- if (!Tutorial::active) {
- if (bloodtoggle && !weapons[weaponids[weaponactive]].bloody)
+ if (bloodtoggle && !weapons[weaponids[weaponactive]].bloody) {
weapons[weaponids[weaponactive]].bloody = 1;
+ }
weapons[weaponids[weaponactive]].blooddrip += 3;
float bloodlossamount;
bloodlossamount = 200 + abs((float)(Random() % 40)) - 20;
victim->bloodloss += bloodlossamount / victim->armorhigh;
- //victim->bloodloss+=100*(6.5-distsq(&coords,&victim->coords));
victim->DoDamage(damagemult * 0);
XYZ footvel, footpoint;
} else {
footpoint = DoRotation((victim->jointPos(abdomen) + victim->jointPos(neck)) / 2, 0, victim->yaw, 0) * victim->scale + victim->coords;
}
- if (bloodtoggle)
+ if (bloodtoggle) {
Sprite::MakeSprite(cloudimpactsprite, footpoint, footvel, 1, 0, 0, .9, .3);
+ }
footvel = DoRotation(facing, 0, 90, 0) * .8;
footvel.y -= .3;
Sprite::MakeSprite(bloodsprite, footpoint, DoRotation(footvel * 7, (float)(Random() % 20), (float)(Random() % 20), 0), 1, 1, 1, .05, .9);
if (!isnormal(coords.x))
coords = oldcoords;
oldcoords = coords;
- collided = 0;
targetoffset = 0;
currentoffset = 0;
grabdelay = 1;
}
}
- if (animTarget == spinkickanim || animTarget == staffspinhitreversalanim || animTarget == staffspinhitreversedanim || animTarget == staffhitreversalanim || animTarget == staffhitreversedanim || animTarget == hurtidleanim || animTarget == winduppunchanim || animTarget == swordslashreversalanim || animTarget == swordslashreversedanim || animTarget == knifeslashreversalanim || animTarget == knifeslashreversedanim || animTarget == knifethrowanim || animTarget == knifefollowanim || animTarget == knifefollowedanim || animTarget == killanim || animTarget == dropkickanim || animTarget == upunchanim || animTarget == knifeslashstartanim || animTarget == swordslashanim || animTarget == staffhitanim || animTarget == staffspinhitanim || animTarget == staffgroundsmashanim || animTarget == spinkickreversalanim || animTarget == sweepreversalanim || animTarget == lowkickanim || animTarget == sweepreversedanim || animTarget == rabbitkickreversalanim || animTarget == rabbitkickreversedanim || animTarget == jumpreversalanim || animTarget == jumpreversedanim) {
+ if (animTarget == spinkickanim ||
+ animTarget == staffspinhitreversalanim ||
+ animTarget == staffspinhitreversedanim ||
+ animTarget == staffhitreversalanim ||
+ animTarget == staffhitreversedanim ||
+ animTarget == hurtidleanim ||
+ animTarget == winduppunchanim ||
+ animTarget == swordslashreversalanim ||
+ animTarget == swordslashreversedanim ||
+ animTarget == knifeslashreversalanim ||
+ animTarget == knifeslashreversedanim ||
+ animTarget == knifethrowanim ||
+ animTarget == knifefollowanim ||
+ animTarget == knifefollowedanim ||
+ animTarget == killanim ||
+ animTarget == dropkickanim ||
+ animTarget == upunchanim ||
+ animTarget == knifeslashstartanim ||
+ animTarget == swordslashanim ||
+ animTarget == staffhitanim ||
+ animTarget == staffspinhitanim ||
+ animTarget == staffgroundsmashanim ||
+ animTarget == spinkickreversalanim ||
+ animTarget == sweepreversalanim ||
+ animTarget == lowkickanim ||
+ animTarget == sweepreversedanim ||
+ animTarget == rabbitkickreversalanim ||
+ animTarget == rabbitkickreversedanim ||
+ animTarget == jumpreversalanim ||
+ animTarget == jumpreversedanim) {
//close hands and yell
- if (righthandmorphend != 1 && righthandmorphness == targetrighthandmorphness) {
+ if (righthandmorphend != 1 &&
+ righthandmorphness == targetrighthandmorphness) {
righthandmorphness = 0;
righthandmorphend = 1;
targetrighthandmorphness = 1;
}
- if (lefthandmorphend != 1 && lefthandmorphness == targetlefthandmorphness) {
+ if (lefthandmorphend != 1 &&
+ lefthandmorphness == targetlefthandmorphness) {
lefthandmorphness = 0;
lefthandmorphend = 1;
targetlefthandmorphness = 1;
ReflectVector(&facing, terrainnormal);
Normalise(&facing);
- if (isRun() || animTarget == sneakanim || animTarget == rollanim || animTarget == walkanim) {
+ if (isRun() ||
+ animTarget == sneakanim || animTarget == rollanim || animTarget == walkanim) {
if (onterrain)
targettilt2 = -facing.y * 20;
else