32#define kQuiriumCascadeDuration (20.0)
33#define kQuiriumCollisionDelay (0.05)
46 if ((
self = [super
init]))
64+ (instancetype) quiriumCascadeFromShip:(
ShipEntity *)ship
66 return [[[
self alloc] initQuiriumCascadeFromShip:ship] autorelease];
72 return [
NSString stringWithFormat:@"%f seconds passed of %f", _timePassed, kQuiriumCascadeDuration];
84 GLfloat stf = tf * tf;
85 GLfloat expansionSpeed = 0.0;
88 expansionSpeed = fmin(240.0f + 10.0f / (tf * tf), 1000.0f);
92 energy = delta_t * (100000 - 90000 * tf);
94 _color[3] = OOClamp_0_1_f(0.5f * ((0.025f / tf) + 1.0f - stf));
116 [UNIVERSE removeEntity:
self];
121- (void) drawImmediate:(
bool)immediate translucent:(
bool)translucent
123 if (!translucent || [
UNIVERSE breakPatternHide])
return;
128 OOGL(glPushAttrib(GL_ENABLE_BIT | GL_COLOR_BUFFER_BIT));
130 OOGL(glDisable(GL_CULL_FACE));
131 OOGL(glDisable(GL_TEXTURE_2D));
132 OOGL(glEnable(GL_BLEND));
133 OOGL(glBlendFunc(GL_SRC_ALPHA, GL_ONE));
165- (BOOL) checkCloseCollisionWith:(
Entity *)other
173@implementation Entity (OOQuiriumCascadeExtensions)
#define OO_ENTER_OPENGL()
OOMatrix OOMatrixForBillboard(HPVector bbPos, HPVector eyePos)
@ OPENGL_STATE_ADDITIVE_BLENDING
#define OOVerifyOpenGLState()
BOOL OOCheckOpenGLErrors(NSString *format,...)
void GLDrawBallBillboard(GLfloat radius, GLfloat step, GLfloat z_distance)
#define OOSetOpenGLState(STATE)
#define kQuiriumCascadeDuration
#define kQuiriumCollisionDelay
NSMutableArray * collidingEntities
void update:(OOTimeDelta delta_t)
void setOwner:(Entity *ent)
GLfloat cam_zero_distance
void takeEnergyDamage:from:becauseOf:weaponIdentifier:(double amount,[from] Entity *ent,[becauseOf] Entity *other,[weaponIdentifier] NSString *weaponIdentifier)
void setStatus:(OOEntityStatus stat)
void setPosition:(HPVector posn)
NSString * descriptionComponents()