/// <summary> /// /// </summary> /// <param name="character"></param> public void StartUse(CharacterEntity character) { if(!character.CanGameAction(GameActionTypeEnum.EXCHANGE)) { character.Dispatch(WorldMessage.INFORMATION_MESSAGE(InformationTypeEnum.ERROR, InformationEnum.ERROR_YOU_ARE_AWAY)); return; } character.ExchangeStorage(m_storage); }
/// <summary> /// /// </summary> /// <param name="character"></param> /// <param name="monsterGroup"></param> public bool StartMonsterFight(CharacterEntity character, MonsterGroupEntity monsterGroup) { if (!CanStartFight(character)) return false; if (!character.CanGameAction(GameActionTypeEnum.FIGHT)) { character.Dispatch(WorldMessage.IM_ERROR_MESSAGE(InformationEnum.ERROR_YOU_ARE_AWAY)); return false; } monsterGroup.StopAction(GameActionTypeEnum.MAP); Add(new MonsterFight(m_map, m_fightId++, character, monsterGroup)); return true; }
/// <summary> /// /// </summary> /// <param name="character"></param> /// <param name="skill"></param> private void Harvest(CharacterEntity character, SkillIdEnum skill) { if(!character.CanGameAction(GameActionTypeEnum.SKILL_HARVEST)) { character.Dispatch(WorldMessage.IM_ERROR_MESSAGE(InformationEnum.ERROR_YOU_ARE_AWAY)); return; } if (!IsActive) return; m_currentJob = character.CharacterJobs.GetJob(skill); if (m_currentJob == null) return; var duration = m_currentJob.HarvestDuration; m_quantityFarmed = Util.Next(m_currentJob.HarvestMinQuantity, m_currentJob.HarvestMaxQuantity); character.HarvestStart(this, duration); m_currentHarvester = character; Deactivate(); m_harvestTimer = base.AddTimer(duration, StopHarvest, true); }