Esempio n. 1
0
        Skill.Effect[] ITeammate.GetActivitiesEffects(Team team, CommonSkillSet common_skill_set)
        {
            List<Skill.Effect> effects = new List<Skill.Effect>();
            List<int> removSkills = new List<int>();

            foreach (var pair in _ActivitiesSkills)
            {
                var skill = pair.Value;
                Skill.Effect effect = skill.GetActivitiesEffect();
                if (team.Consumer(effect.Demand))
                {
                    effects.Add(effect);
                    if (skill.IsConsumed())
                    {
                        removSkills.Add(pair.Key);
                        _Recover.Add(skill);
                        _Recover.Add(common_skill_set.Licensing());
                    }
                }
            }
            if (_RemoveEnableEvent != null)
                _RemoveEnableEvent( (from removeSkill in removSkills select _ActivitiesSkills[removeSkill].ToIndex(removeSkill)).ToArray() );
            foreach(var skill in removSkills)
            {
                _ActivitiesSkills.Remove(skill);

            }

            return effects.ToArray();
        }
Esempio n. 2
0
        void ITeammate.Take(CommonSkillSet common_skill_set)
        {
            _Idle = new Dictionary<int, Skill>();
            _Wait = new Queue<Skill>();
            _Recover = new List<Skill>();

            foreach (var skill in _Ability.Skills)
            {
                _Add(_Idle , SkillResources.Instance.Find(skill));
            }

            var needCount = 10 - _Ability.Skills.Length;
            for (int i = 0; i < needCount; ++i)
            {
                _Add(_Idle , common_skill_set.Licensing());
            }
            for (int i = 0; i < 20; ++i)
            {
                _Wait.Enqueue(common_skill_set.Licensing());
            }
        }
Esempio n. 3
0
 public Activists(int order, int remaining, Team.Member member, Team[] targets, CommonSkillSet common_skill_set)
 {
     _Remaining = remaining;
     _CommonSkillSet = common_skill_set;
     _Targets = targets;
     this._Member = member;
     _Member.Teammate.SetBattleThinkTime(LocalTime.Instance.Ticks, (order + 1) * ThinkTime, false);
 }
Esempio n. 4
0
            private Activists[] _GetSurvivor(Team[] teams, CommonSkillSet common_skill_set)
            {
                var members = _Sort(teams);
                int i = 0;
                List<Activists> activistss = new List<Activists>();
                foreach(var member in members)
                {
                    activistss.Add(new Activists(i++, members.Count - i, member, (from team in teams where member.Owner != team select team).ToArray(), common_skill_set));
                }

                return activistss.ToArray();
            }
Esempio n. 5
0
 public ActionStage(Team[] teams, CommonSkillSet common_skill_set)
 {
     _Teams = teams;
     _Activists = new Queue<Activists>(_GetSurvivor(teams, common_skill_set));
 }
Esempio n. 6
0
 private void _Take(Team[] teams, CommonSkillSet common_skill_set)
 {
     foreach (var team in teams)
     {
         foreach(var member in team.Members)
         {
             member.Teammate.Take(common_skill_set);
         }
     }
 }
Esempio n. 7
0
        internal void Initial(Team team1, Team team2)
        {
            _CommonSkillSet = new CommonSkillSet();
            _CommonSkillSet.Shuffle();
            _CommonSkillSet.EmptyEvent += () => { DrawEvent(); };
            _Teams = new Team[] { team1 , team2 };
            _StageMachine = new Regulus.Game.StageMachine();

            _Take(_Teams , _CommonSkillSet);
            _InitialBroadcasting(_Teams);

            _ToStrategy(_Teams);
        }