////

        private void OnFinishPlayerEnterWorldForHost(out bool isSynced)
        {
            var  mymod   = (RewardsMod)this.mod;
            var  myworld = ModContent.GetInstance <RewardsWorld>();
            bool success = false;

            string playerUid = PlayerIdentityHelpers.GetUniqueId(this.player);

            KillData plrData = myworld.Logic.GetPlayerData(this.player);

            if (plrData == null)
            {
                LogHelpers.Warn("Could not get player " + this.player.name + "'s (" + this.player.whoAmI + ") kill data.");
                isSynced = false;
                return;
            }

            success = plrData.Load(playerUid, this.player);
            if (!success)
            {
                if (KillData.CanReceiveOtherPlayerKillRewards( ))
                {
                    plrData.AddToMe(myworld.Logic.WorldData);
                }
            }

            if (mymod.SettingsConfig.DebugModeInfo || mymod.SettingsConfig.DebugModeKillInfo)
            {
                LogHelpers.Alert("who: " + this.player.whoAmI + " success: " + success + ", " + plrData.ToString());
            }

            isSynced = success;
        }
Exemple #2
0
        protected override void ReceiveReply()
        {
            var mymod    = RewardsMod.Instance;
            var myworld  = ModContent.GetInstance <RewardsWorld>();
            var myplayer = (RewardsPlayer)TmlHelpers.SafelyGetModPlayer(Main.LocalPlayer, mymod, "RewardsPlayer");

            KillData plrData = myworld.Logic.GetPlayerData(Main.LocalPlayer);
            KillData wldData = myworld.Logic.WorldData;

            if (plrData == null || wldData == null)
            {
                LogHelpers.Alert("Could not process reply. " + (plrData == null) + ", " + (wldData == null));
                return;
            }

            wldData.ResetAll(Main.LocalPlayer);
            wldData.AddToMe(this.WorldData);

            plrData.ResetAll(Main.LocalPlayer);
            plrData.AddToMe(this.PlayerData, Main.LocalPlayer);

            myplayer.FinishLocalSync();
        }