From c4be2481b3c8d3d8b0565fb297d78c4c64ab4f81 Mon Sep 17 00:00:00 2001 From: flowtron Date: Mon, 22 Nov 2010 18:58:29 +0000 Subject: [PATCH] finishing touches on AR/SubGun spread/damage-alteration git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5927 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/serverevents.h | 2 +- source/src/weapon.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/src/serverevents.h b/source/src/serverevents.h index f1a1c0eb..ba1cbd8c 100644 --- a/source/src/serverevents.h +++ b/source/src/serverevents.h @@ -70,7 +70,7 @@ void processevent(client *c, shotevent &e) totalrays += rays; if(totalrays>maxrays) continue; - int damage = rays*guns[e.gun].damage; + int damage = rays*guns[e.gun].damage+(e.gun==GUN_SUBGUN&&h.info); bool gib = false; if(e.gun==GUN_KNIFE || (e.gun==GUN_SHOTGUN && rays==maxrays)) gib = true; else if(e.gun==GUN_SNIPER) gib = h.info!=0; diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index f80bd1dc..18e488d6 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -570,7 +570,8 @@ void raydamage(vec &from, vec &to, playerent *d) case GUN_SUBGUN: if(flag4subgunDMGalt) dam +=1; break; default: break; } - hitpush(dam, o, d, from, to, d->weaponsel->type, gib, gib ? 1 : 0); + bool info = gib || (GUN_SUBGUN && flag4subgunDMGalt); + hitpush(dam, o, d, from, to, d->weaponsel->type, gib, info ? 1 : 0); if(d==player1) hitted=true; shorten(from, o->o, to); } @@ -1225,7 +1226,7 @@ bool rifle::selectable() { return weapon::selectable() && !m_noprimary && this = assaultrifle::assaultrifle(playerent *owner) : gun(owner, GUN_ASSAULT) {} -int assaultrifle::dynspread() { return shots > 3 ? info.spread * 3 : info.spread; } +int assaultrifle::dynspread() { return shots > 3 ? 60 : ( info.spread + ( shots > 0 ? ( shots == 1 ? 5 : 15 ) : 0 } float assaultrifle::dynrecoil() { return info.recoil + (rnd(8)*-0.01f); } bool assaultrifle::selectable() { return weapon::selectable() && !m_noprimary && this == owner->primweap; }