/* virtual */ void COrder_Attack::OnAnimationAttack(CUnit &unit) { Assert(unit.Type->CanAttack); FireMissile(unit, this->GetGoal(), this->goalPos); UnHideUnit(unit); // unit is invisible until attacks }
//------------------------------------------------------------------------------ // Purpose : Shoot off a series of missiles over time, then go intert // Input : // Output : //------------------------------------------------------------------------------ void CTripwireGrenade::FireThink() { SetNextThink( gpGlobals->curtime + 0.16f ); Vector vTargetPos = m_vTargetPos + (m_vTargetOffset * m_nMissileCount); FireMissile(vTargetPos); vTargetPos = m_vTargetPos - (m_vTargetOffset * m_nMissileCount); FireMissile(vTargetPos); m_nMissileCount++; if (m_nMissileCount > 4) { m_iHealth = -1; SetThink( NULL ); } }
//----------------------------------------------------------------------------- // Purpose: If someone damaged, me shoot of my missiles and die // Input : // Output : //----------------------------------------------------------------------------- void CTripwireGrenade::Event_Killed( const CTakeDamageInfo &info ) { if (m_iHealth > 0) { // Fire missiles and blow up for (int i=0;i<6;i++) { Vector vTargetPos = GetAbsOrigin() + RandomVector(-600,600); FireMissile(vTargetPos); } BreakRope(); UTIL_Remove(this); } }
/* virtual */ void COrder_Still::OnAnimationAttack(CUnit &unit) { CUnit *goal = this->GetGoal(); if (goal == NULL) { return; } if (IsTargetInRange(unit)(goal) == false) { this->ClearGoal(); return; } FireMissile(unit, goal, goal->tilePos); UnHideUnit(unit); }
void Player::Update() { if(Events::Instance->IsKey(KeyCode::Key_Left)) { MoveToLeft(); } else if(Events::Instance->IsKey(KeyCode::Key_Right)) { MoveToRight(); } if(Events::Instance->IsKeyDown(KeyCode::Key_Space)) { FireMissile(); } for(unsigned int i = 0; i < m_listOfMissiles.size(); i++) { m_listOfMissiles[i]->Update(); } if(m_collisionObject->GetCollisionData() != NULL) { LoseLife(); } }
/* virtual */ void COrder_Still::OnAnimationAttack(CUnit &unit) { if (unit.CanAttack(false) == false) { return; } CUnit *goal = this->GetGoal(); if (goal == nullptr) { return; } if (IsTargetInRange(unit)(goal) == false) { this->ClearGoal(); return; } FireMissile(unit, goal, goal->tilePos, goal->MapLayer->ID); UnHideUnit(unit); unit.StepCount = 0; }