Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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;
 }
Exemple #4
0
        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);
        }
Exemple #5
0
        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());
        }