public NetworkActivityObject(bool working, FollowerType followerType, string leaderName, bool useMovementSkill,
                              Keys movementSkillKey, List <FollowerSkill> followerSkills,
                              FollowerAggressiveness propagateFollowerAggressiveness, long propagateEnterInstance)
 {
     Working                         = working;
     FollowerMode                    = followerType;
     LeaderName                      = leaderName;
     UseMovementSkill                = useMovementSkill;
     MovementSkillKey                = movementSkillKey;
     LastChangeTimestamp             = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeMilliseconds();
     FollowerSkills                  = followerSkills;
     PropagateFollowerAggressiveness = propagateFollowerAggressiveness;
     PropagateEnterInstance          = propagateEnterInstance;
 }
예제 #2
0
        private void ProcessNetworkActivityResponse(NetworkActivityObject activityObj)
        {
            if (activityObj == null)
            {
                return;
            }

            Settings.LeaderName.Value       = activityObj.LeaderName;
            Settings.UseMovementSkill.Value = activityObj.UseMovementSkill;
            _currentFollowerMode            = activityObj.FollowerMode;
            _followerAggressivenessMode     = activityObj.PropagateFollowerAggressiveness;
            _followerShouldWork             = activityObj.Working;
            _enterInstanceValue             = activityObj.PropagateEnterInstance;

            if (activityObj.Working)
            {
                _followerCoroutine.Resume();
            }
            else
            {
                _followerCoroutine.Pause();
            }

            if (activityObj.FollowerSkills != null && activityObj.FollowerSkills.Any())
            {
                List <SkillSettings> settingsSkills = new List <SkillSettings>()
                {
                    Settings.SkillOne,
                    Settings.SkillTwo,
                    Settings.SkillThree
                };
                foreach (FollowerSkill skill in activityObj.FollowerSkills.OrderBy(o => o.Position))
                {
                    SkillSettings settingsSkill = settingsSkills[skill.Position - 1];

                    settingsSkill.Enable.Value               = skill.Enable;
                    settingsSkill.SkillHotkey.Value          = skill.Hotkey;
                    settingsSkill.UseAgainstMonsters.Value   = skill.UseAgainstMonsters;
                    settingsSkill.CooldownBetweenCasts.Value = skill.Cooldown.ToString();
                    settingsSkill.Priority.Value             = skill.Priority;
                    settingsSkill.Position.Value             = skill.Position;
                    settingsSkill.Range.Value = skill.Range;
                }
            }

            return;
        }