internal override void GenerateObject(GameContentDataBase gcdb)
        {
            base.GenerateObject(gcdb);
            var temp = gcdb.gameItems.Find(item => item.itemName.Equals(name, StringComparison.OrdinalIgnoreCase));

            if (temp == null)
            {
                temp = gcdb.gameItems.Find(item => item.itemID == ID);
            }

            if (temp == null)
            {
            }
            else
            {
                o = temp.Clone();
                BaseItem bi = o as BaseItem;

                if (itemAmount != 0 && itemAmount % bi.itemStackSize == 0)
                {
                    bi.itemAmount = bi.itemStackSize;
                }
                bi.itemAmount = itemAmount <= bi.itemStackSize ? itemAmount : itemAmount % bi.itemStackSize;
                if (buyPrice != -1)
                {
                    bi.itemBuyPrice = buyPrice;
                }
                else
                {
                    buyPrice = bi.itemBuyPrice;
                }

                if (sellPrice != -1)
                {
                    bi.itemSellPrice = sellPrice;
                }
                else
                {
                    sellPrice = bi.itemSellPrice;
                }
            }
        }
Example #2
0
        public object Reload(GameContentDataBase gcdb)
        {
            switch (spriteType)
            {
            case SpriteType.Object:
                spriteObject = gcdb.gameObjectObjects.Find(so => so.shapeID == objID).ShallowCopy();

                var baseSprite = spriteObject as BaseSprite;
                baseSprite.position = position;
                baseSprite.UpdatePositioNonMovement();
                baseSprite.groundTileType     = tileType;
                baseSprite.objectIDAddedOnMap = mapID;
                baseSprite.shapeMapName       = objMapName;
                baseSprite.scriptID           = scriptID;
                baseSprite.bIsVisible         = bIsVisible;
                baseSprite.bActivateOnTouch   = bActivateOnTouch;
                baseSprite.scaleVector        = scaleVector;
                baseSprite.AssignScaleVector(scaleVector);
                baseSprite.groundTileType        = gTileType[0];
                baseSprite.bHasCollision         = bHasCollision;
                baseSprite.bNeedsWaterReflection = bNeedsWaterReflection;
                baseSprite.rotationIndex         = rotation;

                baseSprite.script = gcdb.gameScripts.Find(so => so.identifier == scriptID) == null ? new SriptProcessing.BaseScript() : gcdb.gameScripts.Find(so => so.identifier == scriptID);
                return(baseSprite);

            case SpriteType.objectGroup:
                spriteObject = gcdb.gameObjectGroups.Find(so => so.groupID == objID).ShallowCopy();
                var og = spriteObject as ObjectGroup;
                og.relativeOffSet = relativeOffSet;
                og.groupItemsIDs  = groupItemsIDs;
                og.Reload(gcdb);
                og.PlaceGroupFromReload(position);
                og.groupItems.ForEach(o => o.groundTileType = tileType);
                og.mainController().groundTileType = tileType;
                og.bIsVisible  = bIsVisible;
                og.scaleVector = scaleVector;
                og.AssignScaleVector(scaleVector);
                og.groupMapName = objMapName;
                int OGindex = 0;
                foreach (var item in og.groupItems)
                {
                    item.groundTileType   = gTileType[OGindex];
                    item.bHasCollision    = bHasCollisionGroup[OGindex];
                    item.bIsVisible       = bIsVisibleGroup[OGindex];
                    item.bActivateOnTouch = bActivateOnTouchGroup[OGindex];

                    OGindex++;
                }
                og.bHasCollision         = bHasCollision;
                og.bNeedsWaterReflection = bNeedsWaterReflection;

                return(og);

            case SpriteType.SpriteLight:
                spriteObject = gcdb.gameLights.Find(so => so.lightID == objID).Clone();
                var sl = spriteObject as SpriteLight;
                sl.position = position;
                sl.UpdatePositioNonMovement();
                sl.groundTileType   = tileType;
                sl.shapeMapName     = objMapName;
                sl.scriptID         = scriptID;
                sl.bIsVisible       = bIsVisible;
                sl.bActivateOnTouch = bActivateOnTouch;
                sl.scaleVector      = scaleVector;
                sl.AssignScaleVector(scaleVector);
                sl.groundTileType        = gTileType[0];
                sl.bHasCollision         = bHasCollision;
                sl.script                = gcdb.gameScripts.Find(so => so.identifier == scriptID) == null ? new SriptProcessing.BaseScript() : gcdb.gameScripts.Find(so => so.identifier == scriptID);
                sl.bNeedsWaterReflection = bNeedsWaterReflection;
                sl.rotationIndex         = rotation;
                return(sl);

            case SpriteType.Character:
                spriteObject = gcdb.gameCharacters.Find(so => so.shapeID == objID).Clone();

                var baseCharacter = spriteObject as BaseCharacter;
                baseCharacter.position = position;
                baseCharacter.UpdatePositioNonMovement();
                baseCharacter.groundTileType     = tileType;
                baseCharacter.objectIDAddedOnMap = mapID;
                baseCharacter.shapeMapName       = objMapName;
                baseCharacter.scriptID           = scriptID;
                baseCharacter.bIsVisible         = bIsVisible;
                baseCharacter.bActivateOnTouch   = bActivateOnTouch;
                baseCharacter.scaleVector        = scaleVector;
                baseCharacter.AssignScaleVector(scaleVector);
                baseCharacter.groundTileType        = gTileType[0];
                baseCharacter.bHasCollision         = bHasCollision;
                baseCharacter.bNeedsWaterReflection = bNeedsWaterReflection;
                baseCharacter.rotationIndex         = rotation;

                return(baseCharacter);
            }

            return(null);
        }
 internal virtual void GenerateObject(GameContentDataBase gcdb)
 {
 }