Пример #1
0
void TradeData::SetItem(TradeSlots slot, Item* item, bool update /*= false*/)
{
    ObjectGuid itemGuid;
    if (item)
        itemGuid = item->GetGUID();

    if (_items[slot] == itemGuid && !update)
        return;

    _items[slot] = itemGuid;

    SetAccepted(false);
    GetTraderData()->SetAccepted(false);

    UpdateServerStateIndex();

    Update();

    // need remove possible trader spell applied to changed item
    if (slot == TRADE_SLOT_NONTRADED)
        GetTraderData()->SetSpell(0);

    // need remove possible player spell applied (possible move reagent)
    SetSpell(0);
}
Пример #2
0
static void create() {
    spell::create();
    SetSpell("greater fireball");
    SetRules("", "LIV");
    SetSpellType(SPELL_COMBAT);
    SetRequiredMagic(100);
    SetSkills(([ "conjuring" : 24, "magic attack" : 24 ]));
    SetMagicCost(49, 49);
    SetStaminaCost(10, 10);
    SetDifficulty(10);
    SetMorality(-20);
    SetAutoDamage(0);
    SetDamage(MAGIC|HEAT, ({ 60, 45 }) );
Пример #3
0
static void create() {
    spell::create();
    SetSpell("fireball");
    SetRules("", "LIV");
    SetSpellType(SPELL_COMBAT);
    SetRequiredMagic(50);
    SetSkills(([ "conjuring" : 8, "magic attack" : 0 ]));
    SetMagicCost(30, 24);
    SetStaminaCost(20, 16);
    SetDifficulty(10);
    SetMorality(-20);
    SetAutoDamage(0);
    SetDamage(MAGIC|HEAT, ({ 20, 15 }) );
Пример #4
0
static void create() {
    spell::create();
    SetSpell("healing");
    SetRules("for LIV");
    SetSpellType(SPELL_HEALING);
    SetRequiredMagic(300);
    SetSkills(([ "healing" : 1 ]));
    SetMagicCost( 20, 10);
    SetDifficulty(1);
    SetVerb("pray");
    SetHelp("Syntax: <pray for healing for LIV>\n\n"
            "This minor healing spell provides some minimal "
            "aid to the wounded.");
}
Пример #5
0
static void create() {
    spell::create();
    SetSpell("buffer");
    SetRules("", "LIV");
    SetSpellType(SPELL_DEFENSE);
    SetRequiredMagic(50);
    SetSkills(([ "magic defense" : 1 ]));
    SetMagicCost(40, 40);
    SetDifficulty(50);
    SetMorality(10);
    SetHelp("Syntax: <cast buffer>\n"
      "	     <cast buffer on LIV>\n\n"
      "A magical defense spell that allows the caster to create "
      "a glowing shield around the LIVing object named.\n\n");
}
Пример #6
0
void Daggerstorm::Cast(ObjectRef user, ObjectRef enemy)
{
	for (int i = 0; i < 8; i++) {
		auto projectileObject = Object::Create();

		projectileObject->SetJustEnabled();

		static int projectileNumber = 0;
		std::string name = std::string("projectile") + std::to_string(projectileNumber++);
		projectileObject->SetName(name);

		auto projectileComp = projectileObject->AddComponent<ProjectileComponent>();
		auto spriteComp = projectileObject->AddComponent<SpriteComponent>();
		auto colliderComp = projectileObject->AddComponent<ColliderComponent>();

		Vector2f direction = directions[i];

		projectileComp->SetDirection(direction);
		projectileComp->SetSpeed(projectileSpeed);
		projectileComp->SetSpell(this);
		projectileComp->SetUser(user);
		projectileComp->SetCanApplyOnUser(false);

		spriteComp->SetTexture("dagger.png");
		spriteComp->SetSize(Vector2f(20, 40));

		colliderComp->InitShape("rectangle", "20, 20");
		colliderComp->SetIsStatic(false);
		colliderComp->SetIsPhantom(true);

		Vector2f userPos = user->GetComponent<SpriteComponent>()->GetSize();
		Vector2f startingPos = user->GetPos() + userPos/2.f;
		Vector2f projectileSize = spriteComp->GetSize();
		float magic = (sqrt(pow(projectileSize.x, 2) + pow(projectileSize.y, 2))) / 2;

		projectileObject->SetPos(startingPos +
			magic * direction);
		g_menuHandler->GetCurrentMenu()->AddChild(std::move(projectileObject));
	}

	r_cooldown = cooldown;

}