コード例 #1
0
 public static T TryGUIDThenFull <T>(this SerializationInfo info, StreamingContext context, string variableName) where T : GameObject
 {
     if (!context.GetVars().FullySerializeEverything&& info.ContainsKey(variableName + "GUID"))
     {
         return(context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString(variableName + "GUID"))) as T);
     }
     else
     {
         return(info.GetValue(variableName, typeof(T)) as T);
     }
 }
コード例 #2
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            SerializationHelper.Variables v = context.GetVars();
            info.AddValue("type", type);
            info.AddValue("passable", passable);

            if (v.FullySerializeEverything || v.FullySerialized.Contains(onTile.GUID))
            {
                info.AddValue("onTile", onTile);
            }
            else
            {
                info.AddValue("onTileGUID", OnTile.GUID.ToString());
            }

            //Serialization of seenBy is split up so only Living objects that need to be fully serialized are.
            Dictionary <string, float> guidBasedSeenBy = new Dictionary <string, float>();
            Dictionary <Living, float> fullSeenBy      = new Dictionary <Living, float>();

            foreach (KeyValuePair <Living, float> kvp in seenBy)
            {
                if (v.FullySerializeEverything || v.FullySerialized.Contains(kvp.Key.GUID))
                {
                    fullSeenBy.Add(kvp.Key, kvp.Value);
                }
                else
                {
                    guidBasedSeenBy.Add(kvp.Key.GUID.ToString(), kvp.Value);
                }
            }
            info.AddValue("seenBy", fullSeenBy);
            info.AddValue("seenByGUIDs", guidBasedSeenBy);
            base.GetObjectData(info, context);
        }
コード例 #3
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            context.GetVars().FullySerializeEverything = true;

            info.AddValue("updatedLevel", updatedLevel);
            base.GetObjectData(info, context);
        }
コード例 #4
0
        public Tile(SerializationInfo info, StreamingContext context) : base(info, context)
        {
            type     = (TileType)info.GetValue("type", typeof(TileType));
            passable = info.GetBoolean("passable");
            onTile   = info.TryGUIDThenFull <GameObjectList>(context, "onTile");

            tempLocal  = context.GetVars().Local;
            tempSeenBy = info.GetValue("seenByGUIDs", typeof(Dictionary <string, float>)) as Dictionary <string, float>;
            seenBy     = info.GetValue("seenBy", typeof(Dictionary <Living, float>)) as Dictionary <Living, float>;
        }
コード例 #5
0
 public override void GetObjectData(SerializationInfo info, StreamingContext context)
 {
     SerializationHelper.Variables v = context.GetVars();
     if (v.FullySerializeEverything || v.FullySerialized.Contains(parentTile.GUID))
     {
         info.AddValue("parentTile", parentTile);
     }
     else
     {
         info.AddValue("parentTileGUID", parentTile.GUID.ToString());
     }
     info.AddValue("open", open);
     base.GetObjectData(info, context);
 }
コード例 #6
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            SerializationHelper.Variables v = context.GetVars();
            if (item == null || v.FullySerializeEverything || v.FullySerialized.Contains(item.GUID))
            {
                info.AddValue("item", item);
            }
            else
            {
                info.AddValue("itemGUID", item.GUID.ToString());
            }

            base.GetObjectData(info, context);
        }
コード例 #7
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            SerializationHelper.Variables v = context.GetVars();
            if (v.FullySerializeEverything || v.FullySerialized.Contains(mouseSlot.GUID))
            {
                info.AddValue("mouseSlot", mouseSlot);
            }
            else
            {
                info.AddValue("mouseSlotGUID", mouseSlot.GUID.ToString());
            }

            info.AddValue("playerType", playerType);
            info.AddValue("playerNameTitle", playerNameTitle);
            info.AddValue("exp", exp);
            info.AddValue("freeStatPoints", freeStatPoints);
            base.GetObjectData(info, context);
        }
コード例 #8
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            SerializationHelper.Variables v = context.GetVars();
            if (v.FullySerializeEverything || v.FullySerialized.Contains(iBox.GUID))
            {
                info.AddValue("iBox", iBox);
            }
            else
            {
                info.AddValue("iBoxGUID", iBox.GUID.ToString());
            }

            info.AddValue("Closed", Closed);
            info.AddValue("floorNumber", floorNumber);
            info.AddValue("openContainerSprite", openContainerSprite);
            info.AddValue("openSound", openSound);

            base.GetObjectData(info, context);
        }
コード例 #9
0
    public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        SerializationHelper.Variables v = context.GetVars();
        if (parent == null || v.FullySerializeEverything || v.FullySerialized.Contains(parent.GUID))
        {
            info.AddValue("parent", parent);
        }
        else
        {
            info.AddValue("parentGUID", parent.GUID.ToString());
        }

        info.AddValue("posX", position.X);
        info.AddValue("posY", position.Y);
        info.AddValue("velX", velocity.X);
        info.AddValue("velY", velocity.Y);
        info.AddValue("layer", layer);
        info.AddValue("id", id);
        info.AddValue("visible", visible);
        info.AddValue("guid", guid);
    }
コード例 #10
0
 public DeathAnimationEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     dead = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("deadGUID"))) as Living;
 }
コード例 #11
0
 public StatIncreaseEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     player = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("playerGUID"))) as Player;
     stat   = (Stat)info.GetValue("stat", typeof(Stat));
 }
コード例 #12
0
 public PlayerMoveEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     tile = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("tileGUID"))) as Tile;
 }
コード例 #13
0
        public override void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            base.GetObjectData(info, context);

            //animations
            info.AddValue("idleAnimation", idleAnimation);
            info.AddValue("moveAnimation", moveAnimation);
            info.AddValue("dieAnimation", dieAnimation);
            info.AddValue("dieSound", dieSound);

            SerializationHelper.Variables v = context.GetVars();
            if (v.FullySerializeEverything || v.FullySerialized.Contains(inventory.GUID))
            {
                info.AddValue("inventory", inventory);
            }
            else
            {
                info.AddValue("inventoryGUID", inventory.GUID.ToString());
            }

            if (v.FullySerializeEverything || v.FullySerialized.Contains(equipmentSlots.GUID))
            {
                info.AddValue("equipmentSlots", equipmentSlots);
            }
            else
            {
                info.AddValue("equipmentSlotsGUID", equipmentSlots.GUID.ToString());
            }

            if (v.FullySerializeEverything || v.FullySerialized.Contains(skillList.GUID))
            {
                info.AddValue("skillList", skillList);
            }
            else
            {
                info.AddValue("skillListGUID", skillList.GUID.ToString());
            }

            if (currentSkill == null || v.FullySerializeEverything || v.FullySerialized.Contains(currentSkill.GUID))
            {
                info.AddValue("currentSkill", currentSkill);
            }
            else
            {
                info.AddValue("currentSkillGUID", currentSkill.GUID.ToString());
            }

            //stats
            info.AddValue("manaPoints", manaPoints);
            info.AddValue("healthPoints", healthPoints);
            info.AddValue("actionPoints", actionPoints);
            info.AddValue("baseAttack", baseAttack);
            info.AddValue("strength", strength);
            info.AddValue("dexterity", dexterity);
            info.AddValue("intelligence", intelligence);
            info.AddValue("creatureLevel", creatureLevel);
            info.AddValue("vitality", vitality);
            info.AddValue("wisdom", wisdom);
            info.AddValue("luck", luck);
            info.AddValue("baseReach", baseReach);
            info.AddValue("specialReach", specialReach);
            info.AddValue("viewDistance", viewDistance);
        }
コード例 #14
0
 public ChangedSkillEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     player           = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("playerGUID"))) as Player;
     newSelectedSkill = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("newSelectedSkillGUID"))) as Skill;
 }
コード例 #15
0
 public LivingMoveAnimationEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     toMove      = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("toMoveGUID"))) as Living;
     destination = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("destinationGUID"))) as Tile;
 }
コード例 #16
0
 public DoorEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     door = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("doorGUID"))) as Door;
 }
コード例 #17
0
 public AttackEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     Defender = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("DefenderGUID"))) as Living;
 }
コード例 #18
0
 public DisarmTrapEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     trap = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("trapGUID"))) as Trap;
 }
コード例 #19
0
 public TakenPotionEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     potion = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("potionGUID"))) as Potion;
 }
コード例 #20
0
 public NextLevelEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     end    = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("endGUID"))) as End;
     player = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("playerGUID"))) as Player;
 }
コード例 #21
0
 public SkillEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     target = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("DefenderGUID"))) as GameObject;
 }
コード例 #22
0
 public PickupEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     item   = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("itemGUID"))) as Item;
     player = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("playerGUID"))) as Player;
     target = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("targetGUID"))) as ItemSlot;
 }
コード例 #23
0
 public EndTurnEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     player = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("playerGUID"))) as Player;
 }
コード例 #24
0
 public OpenedChestEvent(SerializationInfo info, StreamingContext context) : base(info, context)
 {
     container = context.GetVars().Local.GetGameObjectByGUID(Guid.Parse(info.GetString("containerGUID"))) as Container;
 }