From 85d9146ad0f67b2d71117fa57afd8ac648955cb1 Mon Sep 17 00:00:00 2001 From: David Dormagen Date: Thu, 25 Nov 2010 19:28:42 +0100 Subject: [PATCH] club buffed, try it! --- .../Items.c4d/Weapons.c4d/Club.c4d/Script.c | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/planet/Objects.c4d/Items.c4d/Weapons.c4d/Club.c4d/Script.c b/planet/Objects.c4d/Items.c4d/Weapons.c4d/Club.c4d/Script.c index 50c61e885..037a71790 100644 --- a/planet/Objects.c4d/Items.c4d/Weapons.c4d/Club.c4d/Script.c +++ b/planet/Objects.c4d/Items.c4d/Weapons.c4d/Club.c4d/Script.c @@ -73,7 +73,7 @@ public func FinishedAiming(object clonk, int angle) // since the Clonk internal callback is only once, we cannot use it // .. - AddEffect("DuringClubShoot", clonk, 1, 1, this, nil, angle); + AddEffect("DuringClubShootControl", clonk, 1, 1, this, nil, angle); // aaaand, a cooldown AddEffect("ClubWeaponCooldown", clonk, 1, 5, this); @@ -98,19 +98,28 @@ public func DuringShoot(object clonk, int angle) // DoStrike(clonk, angle); } -func FxDuringClubShootStart(target, effect_number, temp, p1) +func FxDuringClubShootControlStart(target, effect_number, temp, p1) { if(temp) return; EffectVar(0, target, effect_number)=p1; } -func FxDuringClubShootTimer(target, effect_number, effect_time) +func FxDuringClubShootControlTimer(target, effect_number, effect_time) { if(effect_time > 16) return -1; if(!this) return -1; this->DoStrike(target, EffectVar(0, target, effect_number)); } +// you are not going to be hit by objects you fling away +func FxDuringClubShootControlQueryCatchBlow(object target, int num, object obj) +{ + DoStrike(); + var en=Format("CannotBeHitTwiceBy%d", this->ObjectNumber()); + if(GetEffect(en, obj)) return true; + return false; +} + func DoStrike(clonk, angle) { var x=Sin(angle, 7); @@ -127,7 +136,7 @@ func DoStrike(clonk, angle) { var damage=5*1000; var f=ApplyShieldFactor(clonk, obj, damage); - ApplyWeaponBash(obj, 200, angle); + ApplyWeaponBash(obj, 400, angle); obj->DoEnergy(-damage, true, FX_Call_EngGetPunched, clonk->GetOwner()); } else @@ -135,10 +144,10 @@ func DoStrike(clonk, angle) var div=100; if(obj->GetContact(-1)) div*=10; - // mass factor + // mass/size factor var fac1=10000/Max(2, obj->GetMass()); var fac2=BoundBy(10-Abs(obj->GetDefCoreVal("Width", "DefCore")-obj->GetDefCoreVal("Height", "DefCore")), 1, 10); - var speed=(2000 * fac1 * fac2) / 10 / 1000; + var speed=(3000 * fac1 * fac2) / 10 / 1000; obj->SetXDir((obj->GetXDir(100) + Sin(angle, speed)) / 2, div); obj->SetYDir((obj->GetYDir(100) - Cos(angle, speed)) / 2, div); }