예제 #1
0
 private void Start()
 {
     m_fishDatabase    = FishDatabaseManager.Instance;
     m_eventManager    = EventManager.Instance;
     m_fishStats       = m_fishDatabase.GetStatsFor(m_fishID);
     m_navmeshWanderer = GetComponent <NavmeshWanderer>();
 }
    public bool TriggerFishReelStartEvent(FishStats stats, Fish fish)
    {
        if (m_fishReelStarted)
        {
            return(false);
        }

        m_fishReelStartEvent.Invoke(stats, fish);
        m_fishReelStarted = true;
        return(true);
    }
예제 #3
0
    private void FishReelStarted(FishStats stats, Fish fish)
    {
        if (m_currState != FishingState.Waiting)
        {
            Debug.LogError("Received fish reel started event while in state (" + m_currState + ")");
        }

        m_currFishingSign.FishingArea.ActivateFish(false);
        m_fishingController.StartFishing(stats, fish);

        m_fishingReticle.SetAnimTriggReelStart();
        m_fishingRod.SetAnimTriggReelStart();

        m_uiManager.ToggleInstructions("");
        ChangeState(FishingState.Reeling);
    }
예제 #4
0
    public void StartFishing(FishStats stats, Fish fish)
    {
        m_currFishStats = stats;
        m_currFish      = fish;
        m_uiManager.DisplayFishingUI(true);

        m_ui.FishIconLerpRate = stats.FishLerpRate;
        m_completionRatio     = STARTING_COMPLETION_RATIO;
        m_isActive            = true;
        m_fishJumpTimer       = 0.0f;
        m_fishingIndicatorVel = Vector2.zero;
        m_shouldDecay         = false;

        m_fishIconPos = new Vector2(0, 0.8f);
        m_ui.HardSetPos(m_fishIconPos);
        m_fishingIndicatorPos = Vector2.zero;
    }
예제 #5
0
 private void Awake()
 {
     stateManager = StateManager.Instance;
     fishStats    = GameObject.FindGameObjectWithTag("Managers").GetComponent <FishStats>();
     spawnLevelOne();
 }
    public void ReadCSV()
    {
        LoadSprites();

        StreamReader reader = new StreamReader(m_inputFilePath);

        // Skip first 2 lines.
        reader.ReadLine();
        reader.ReadLine();

        CollectibleSO          itemSO    = (CollectibleSO)ScriptableObject.CreateInstance(typeof(CollectibleSO));
        FishDatabaseSO         fishSO    = (FishDatabaseSO)ScriptableObject.CreateInstance(typeof(FishDatabaseSO));
        List <CollectibleItem> items     = new List <CollectibleItem>();
        List <FishStats>       fishStats = new List <FishStats>();

        try
        {
            while (true)
            {
                if (reader.EndOfStream)
                {
                    break;
                }

                string   line      = reader.ReadLine();
                string[] splitLine = line.Split('\t');

                var currItem = new CollectibleItem
                {
                    id                = (CollectibleItem.ItemID)ConvertToInt(splitLine[0]),
                    displayName       = ConvertToString(splitLine[1]),
                    displayNamePlural = ConvertToString(splitLine[2], ConvertToString(splitLine[1])),
                    description       = ConvertToString(splitLine[3]),
                    sprite            = ConvertToSprite(splitLine[4]),
                };

                if (splitLine[5] != "")
                {
                    FishStats fish = new FishStats
                    {
                        id              = currItem.id,
                        DecayRate       = 1.0f / ConvertToFloat(splitLine[5]),
                        CompletionRate  = 1.0f / ConvertToFloat(splitLine[6]),
                        JumpIntervalSec = ConvertToFloat(splitLine[7]),
                        FishLerpRate    = 1.0f / ConvertToFloat(splitLine[8]),
                        MinJumpDistance = ConvertToVec2(splitLine[9], splitLine[11], Vector2.zero),
                        MaxJumpDistance = ConvertToVec2(splitLine[10], splitLine[12], Vector2.zero),
                        MinBounds       = ConvertToVec2(splitLine[13], splitLine[15], Vector2.zero),
                        MaxBounds       = ConvertToVec2(splitLine[14], splitLine[16], Vector2.zero),
                    };

                    fishStats.Add(fish);
                }

                items.Add(currItem);
            }
        }
        finally
        {
            itemSO.items     = items.ToArray();
            fishSO.fishStats = fishStats.ToArray();
            reader.Close();
            AssetDatabase.CreateAsset(itemSO, m_outputItemFilePath);
            AssetDatabase.SaveAssets();
            AssetDatabase.CreateAsset(fishSO, m_outputFishFilePath);
            AssetDatabase.SaveAssets();
        }
    }
예제 #7
0
 public Fish(Actor actor, Transform playerTransform, FishStats stats) : base(actor)
 {
     this.playerTransform = playerTransform;
     SetRandomTargetOffset();
     this.stats = stats;
 }
예제 #8
0
        public static void SpawnNewFish(Scene gameScene, Vector2 position, Player player, FishStats stats)
        {
            var fishActor = gameScene.AddActor("Fish", position);

            new BubbleSpawner(fishActor, new MinMax <int>(5, 10));
            new TimeAccumulator(fishActor);
            new Fish(fishActor, player.transform, stats);
            new ResetTargetOffsetPeriodically(fishActor);
            new SpawnBubblesRandomly(fishActor);
            new Eatable(fishActor);
            new FishRenderer(fishActor);
            new PlayerTarget(fishActor, player);
        }