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; } } }
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) { }