void Player::onInit() { const ItemManager& items = ItemManager::getInstance(); // Reset score m_score = 0; m_panel.setScore(0); // Equip Shield item items.getItem(Item::SHIELD, UserSettings::getItemLevel(Item::SHIELD)).equip(*this); setShield(m_shield); // Keep previous shield value // Equip Hull item and repair spaceship items.getItem(Item::HULL, UserSettings::getItemLevel(Item::HULL)).equip(*this); setHP(m_max_hp); m_panel.setHP(m_max_hp); // Equip Engine item items.getItem(Item::ENGINE, UserSettings::getItemLevel(Item::ENGINE)).equip(*this); // Equip Heatsink item and for cooldown items.getItem(Item::HEATSINK, UserSettings::getItemLevel(Item::HEATSINK)).equip(*this); m_heat = 0; m_panel.setHeat(m_heat); m_overheat = false; m_panel.setOverheat(false); // Equip Weapon item items.getItem(Item::WEAPON, UserSettings::getItemLevel(Item::WEAPON)).equip(*this); }
void Player::applyKonamiCode() { m_konami_code_activated = true; // Set max hp setMaxHP(10); setHP(m_max_hp); m_panel.setHP(m_max_hp); // Set max shield setMaxShield(10); setShield(m_max_shield); m_icecubes = 42; m_panel.setIcecubes(42); m_missiles = 42; m_panel.setMissiles(42); m_weapon.setMultiply(3); m_missile_launcher.setMultiply(3); MessageSystem::write("KONAMI CODE ON", getPosition()); m_powerup_emitter.setPosition(getCenter()); m_powerup_emitter.createParticles(50); }
Monster::Monster(MonsterType* _mType): Creature() { isIdle = true; nick = _mType->name; name = _mType->realName; isMasterInRange = false; teleportToMaster = false; mType = _mType; spawn = NULL; raid = NULL; defaultOutfit = mType->outfit; currentOutfit = mType->outfit; double multiplier = g_config.getDouble(ConfigManager::RATE_MONSTER_HEALTH); health = (int32_t)(mType->health * multiplier); healthMax = (int32_t)(mType->healthMax * multiplier); baseSpeed = mType->baseSpeed; internalLight.level = mType->lightLevel; internalLight.color = mType->lightColor; setSkull(mType->skull); setShield(mType->partyShield); hideName = mType->hideName, hideHealth = mType->hideHealth; minCombatValue = 0; maxCombatValue = 0; targetTicks = 0; targetChangeTicks = 0; targetChangeCooldown = 0; attackTicks = 0; defenseTicks = 0; yellTicks = 0; extraMeleeAttack = false; //setStorage(510, mType->name); // register creature events for(StringVec::iterator it = mType->scriptList.begin(); it != mType->scriptList.end(); ++it) { if(!registerCreatureEvent(*it)) std::cout << "[Warning - Monster::Monster] Unknown event name - " << *it << std::endl; } #ifdef __ENABLE_SERVER_DIAGNOSTIC__ monsterCount++; #endif }
Monster::Monster(MonsterType* __type, Raid* raid, Spawn* spawn) : Creature(), _raid(raid), _spawn(spawn) { _type = __type; defaultOutfit = _type->outfit; currentOutfit = _type->outfit; double multiplier = server.configManager().getDouble(ConfigManager::RATE_MONSTER_HEALTH); health = (int32_t)(_type->health * multiplier); healthMax = (int32_t)(_type->healthMax * multiplier); baseSpeed = _type->baseSpeed; internalLight.level = _type->lightLevel; internalLight.color = _type->lightColor; setSkull(_type->skull); setShield(_type->partyShield); hideName = _type->hideName, hideHealth = _type->hideHealth; minCombatValue = 0; maxCombatValue = 0; targetTicks = 0; attackTicks = 0; defenseTicks = 0; yellTicks = 0; extraMeleeAttack = false; resetTicks = false; // register creature events for(StringVector::iterator it = _type->scriptList.begin(); it != _type->scriptList.end(); ++it) { if(!registerCreatureEvent(*it)) LOGe("[Monster::Monster] Unknown event name - " << *it); } }
void Player::onCollision(PowerUp& powerup) { switch (powerup.getType()) { // timed bonus case PowerUp::DOUBLE_SHOT: if (bonus_[T_DOUBLESHOT] == 0) m_weapon.setMultiply(2); bonus_[T_TRISHOT] = 0; bonus_[T_DOUBLESHOT] += TIMED_BONUS_DURATION; m_panel.activeAttackPowerUp(bonus_[T_DOUBLESHOT], powerup.getType()); break; case PowerUp::TRIPLE_SHOT: if (bonus_[T_TRISHOT] == 0) m_weapon.setMultiply(3); bonus_[T_DOUBLESHOT] = 0; bonus_[T_TRISHOT] += TIMED_BONUS_DURATION; m_panel.activeAttackPowerUp(bonus_[T_TRISHOT], powerup.getType()); break; case PowerUp::SPEED: if (bonus_[T_SPEED] == 0) { m_speed *= BONUS_SPEED_FACTOR; m_smoke_emitter.createParticles(120); } bonus_[T_SPEED] += TIMED_BONUS_DURATION; m_panel.activeSpeedPowerUp(bonus_[T_SPEED]); break; // immediate bonus case PowerUp::REPAIR: if (getHP() < m_max_hp) m_panel.setHP(updateHP(1)); break; case PowerUp::FULL_REPAIR: setHP(m_max_hp); m_panel.setHP(m_max_hp); m_powerup_emitter.setPosition(getCenter()); m_powerup_emitter.createParticles(50); break; case PowerUp::SHIELD: if (m_shield < m_max_shield) setShield(m_shield + 1); break; case PowerUp::FULL_SHIELD: setShield(m_max_shield); m_panel.setShield(m_max_shield); m_powerup_emitter.setPosition(getCenter()); m_powerup_emitter.createParticles(50); break; case PowerUp::ICECUBE: if (m_icecubes < MAX_ICECUBES) m_panel.setIcecubes(++m_icecubes); break; case PowerUp::MISSILE: if (m_missiles < MAX_MISSILES) m_panel.setMissiles(++m_missiles); break; default: break; } powerup.kill(); MessageSystem::write(powerup.getDescription(), powerup.getPosition()); SoundSystem::playSound("power-up.ogg"); }
void Hero::useItem(Item* i) { if (i->getAttack() > 0) setWeapon(i); if (i->getDefense() > 0) setShield(i); if (health > 0) usePotion(i); }
void Charac::checkShield(){ int elapsedTime = shieldClock.getElapsedTime().asSeconds(); if(elapsedTime == 10){ setShield(); } }