All pastes #812581 Raw Edit

Anonym

public text v1 · immutable
·published 2007-12-11 21:54 UTC
rendered paste body
/* HitWeapId_S44.h -- Rock the unit when it takes a hit for S44 */

#ifndef __HITWEAPID_S44_H_
#define __HITWEAPID_S44_H_

#ifndef HIT_ROCK_SPEED
#define HIT_ROCK_SPEED	<105>
#endif

#ifndef HIT_RESTORE_SPEED
#define HIT_RESTORE_SPEED	<30>
#endif

//#ifndef ARMOUR
//#define ARMOUR	get MAX_HEALTH

#define COBSCALE	65536
#define ExCOBSCALE      178145
#ifndef QUALITY
  #define QUALITY	1801	// =0.0275
#endif
#define AT_WEAPON	100

HitAnim(anglez, anglex) 
{
	signal 16;
	set-signal-mask 16;
	
	turn base to z-axis anglez speed HIT_ROCK_SPEED;
	turn base to x-axis anglex speed HIT_ROCK_SPEED;

	wait-for-turn base around z-axis;
	wait-for-turn base around x-axis;

	turn base to z-axis <0> speed HIT_RESTORE_SPEED;
	turn base to x-axis <0> speed HIT_RESTORE_SPEED;
}
	
HitByWeaponId(anglez,anglex,id,damage)
{
	var armour, newDamage, tempDamage;
	if (Id>49 && Id<300) start-script HitAnim(anglez, anglex);
	if (id == AT_WEAPON) {
		armour = ARMOUR;
		newDamage = 100;
		tempDamage = damage / 100;
		if (tempDamage < armour)
			newDamage = (tempDamage/100 * get POW (ExCOBSCALE, ((0-QUALITY) * (armour/100 - tempDamage/100))))/COBSCALE;
		#ifdef DEBUG
		get PRINT (tempDamage, newDamage, newDamage * 10000 / tempDamage);
		#endif
		return newDamage * 10000 / tempDamage;
	}
	else return 100;
}
setSFXoccupy (terrain)
{
	if (terrain == 0 AND !(get BUILD_PERCENT_LEFT)) turn base to y-axis <90> now;
	else turn base to y-axis 0 now;
}
#endif