private ServerInventoryItem GiveOreReward(MmoActor player, ContractOreDataReward oreReward) { int playerLevel = player.GetComponent <CharacterObject>().level; OreData data = null; foreach (var ore in player.resource.Materials.Ores) { if (ore.Id.Contains(playerLevel.ToString())) { data = ore; break; } } if (data != null) { MaterialObject materialObj = new MaterialObject(data.Id); int count = Rand.Int(oreReward.minCount, oreReward.maxCount); if (count > 0) { ServerInventoryItem item = new ServerInventoryItem(materialObj, count); return(item); } } return(null); }
private void loadOre(OreDataJson oreData) { OreData ore = oreData.ore; ResourceManager.AddOre( ore.id, Sprite.Single(ResourceManager.GetTexture(ore.textureName), Vector2.One), ore.name, ore.hardness, (float)ore.endurance, ResourceManager.GetItemByID(ore.dropId), (ore.color[0] * 0.01f, ore.color[1] * 0.01f, ore.color[2] * 0.01f), (float)ore.exp); }
public AllData(RelayCannonsData cannons, FansData fans, CrafterData crafters, ItemObjectsData items, MinersData miners, OreData ores, InventoryData invents, UnPackagerData unPacks, PackagerData packs, EggData eggs, SplitterData splits, PumpsData pumps, ZapTowerData zaps, RocketData rock) { cannon = cannons; fan = fans; crafter = crafters; item = items; miner = miners; ore = ores; invent = invents; unPack = unPacks; pack = packs; egg = eggs; split = splits; pump = pumps; zap = zaps; roc = rock; }
public void AddOre(Transform t_CoinRefeerence, TrailRenderer t_TrailRendererReference) { t_CoinRefeerence.parent = spawnCoinParent; OreData t_NewCoinData = new OreData(); t_NewCoinData.hasReachedMaxSpeed = false; t_NewCoinData.speedMeter = 0.0f; t_NewCoinData.timeToReachedMaxVelocity = Time.time + m_TimeToReachMaxVelocity; t_NewCoinData.transformReference = t_CoinRefeerence; t_NewCoinData.trailRendererReference = t_TrailRendererReference; t_NewCoinData.destination = (Vector2)t_CoinRefeerence.transform.position + new Vector2( coinFallingDirection.x * distanceToBeTravel, coinFallingDirection.y * distanceToBeTravel ); m_ActiveCoinInMap.Enqueue(t_NewCoinData); }
private IEnumerator CoinMovementController() { int t_NumberOfActiveCoinInMap = 0; WaitForEndOfFrame t_CycleDelay = new WaitForEndOfFrame(); OreData t_ModifiedCoinData = new OreData(); Vector2 t_CoinCurrentPosition = Vector2.zero; float t_CurrentTimeForSpeedCalcuation = 0.0f; float t_FallingVelocity = 0.0f; while (m_IsCoinMovementControllerRunning) { t_NumberOfActiveCoinInMap = m_ActiveCoinInMap.Count; for (int coinIndex = 0; coinIndex < t_NumberOfActiveCoinInMap; coinIndex++) { t_ModifiedCoinData = m_ActiveCoinInMap.Dequeue(); if (t_ModifiedCoinData.transformReference != null) { //Get : Current Position t_CoinCurrentPosition = t_ModifiedCoinData.transformReference.position; //Defining : Current Velocity if (!t_ModifiedCoinData.hasReachedMaxSpeed) { t_CurrentTimeForSpeedCalcuation = Time.time; if (t_CurrentTimeForSpeedCalcuation < t_ModifiedCoinData.timeToReachedMaxVelocity) { t_FallingVelocity = 1.0f - ((t_ModifiedCoinData.timeToReachedMaxVelocity - t_CurrentTimeForSpeedCalcuation) / m_TimeToReachMaxVelocity); t_FallingVelocity *= (Time.deltaTime * coinFallingSpeed); } else { t_FallingVelocity = Time.deltaTime * coinFallingSpeed; t_ModifiedCoinData.hasReachedMaxSpeed = true; } } else { t_FallingVelocity = Time.deltaTime * coinFallingSpeed; } //Check : if magnetized by player if (m_IsPlayerUsingMagnet && !t_ModifiedCoinData.hasMagnetizedByPlayer) { t_ModifiedCoinData.hasMagnetizedByPlayer = true; t_ModifiedCoinData.trailRendererReference.enabled = true; } if (t_ModifiedCoinData.hasMagnetizedByPlayer) { t_FallingVelocity *= coinSpeedBoostOnMagnetized; t_ModifiedCoinData.transformReference.position = Vector2.MoveTowards( t_CoinCurrentPosition, coinTargetedPosition.position, t_FallingVelocity * m_CurrentGameSpeed ); m_ActiveCoinInMap.Enqueue(t_ModifiedCoinData); } else { //if not magnetized t_ModifiedCoinData.transformReference.position = Vector2.MoveTowards( t_CoinCurrentPosition, t_ModifiedCoinData.destination, t_FallingVelocity * m_CurrentGameSpeed ); if (Vector2.Distance(t_ModifiedCoinData.transformReference.position, t_ModifiedCoinData.destination) <= 0.1f) { Destroy(t_ModifiedCoinData.transformReference.gameObject); } else { m_ActiveCoinInMap.Enqueue(t_ModifiedCoinData); } } } } yield return(t_CycleDelay); } StopCoroutine(CoinMovementController()); }