public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            if (fishType != "FreshwaterFish" && fishType != "SaltwaterFish")
            {
                throw new InvalidOperationException("Invalid fish type.");
            }
            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            IAquarium aquarium = this.aquariums.Where(x => x.Name == aquariumName).FirstOrDefault();

            if (aquarium.GetType().Name.Contains("Fresh") && fish.GetType().Name.Contains("Fresh"))
            {
                aquarium.AddFish(fish);
            }
            else if (aquarium.GetType().Name.Contains("Salt") && fish.GetType().Name.Contains("Salt"))
            {
                aquarium.AddFish(fish);
            }
            else
            {
                return($"Water not suitable.");
            }

            return($"Successfully added {fish.GetType().Name} to {aquariumName}.");
        }
예제 #2
0
        //Changed by Xhj. use info as Parameter
        public IFish SpawnFish(FishInfo info)
        {
            //iType = 23;
            IFish fish = fishPoolMgr.Spawn(info.fishType);

            if (fish == null)
            {
                DebugLogger.LogWarning(eLogType.LT_LOGIC, info.fishType.ToString() + " fish spawn failed");
                return(null);
            }
            fish.Init();
            fish.FishID     = info.fishId;
            fish.LifeTime   = info.expireTime;
            fish.Lottery    = info.lottery;
            fish.CreateTime = info.createTime;
            fish.EscapeTime = info.escapePlace / 100f;
            ILevelObj obj = fish as ILevelObj;

            obj.level = this;
            FishPath path = SceneMgr.Instance.GetFishPath(info.pathId - 1);

            if (path != null)
            {
                fish.SetPath(path.start.position, path.end.position);
            }
            else
            {
                DebugLogger.LogWarning(eLogType.LT_LOGIC, "path not exist");
            }
            return(fish);
        }
예제 #3
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish     = null;
            var   aquarium = this.aquariums.FirstOrDefault(a => a.Name == aquariumName);

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            if (fish == null)
            {
                throw new InvalidOperationException("Invalid fish type.");
            }

            var fishWaterType = fish.GetType().Name.Contains("Fresh") ? "Fresh" : "Salt";

            if (!aquarium.GetType().Name.StartsWith(fishWaterType))
            {
                return("Water not suitable.");
            }
            aquarium.AddFish(fish);
            return($"Successfully added {fishType} to {aquariumName}.");
        }
예제 #4
0
        /// <summary>
        /// Spawns a fish in a random position
        /// </summary>
        /// <param name="f">Fish object</param>
        /// <param name="speedMultiplier">Speed multiplier for this wave</param>
        /// <param name="distance">Range of distance for this wave</param>
        /// <param name="distance">Range of angles (in radians) for this wave</param>
        public void RandomSpawnFish(FishContainer f, float speedMultiplier, Vector2 distance, Vector2 angle)
        {
            Vector2 position = Utility.RandomPointOnUnitCircle(distance, angle);
            IFish   fish     = SpawnFish(f.fishPrefab, f.spawnPositionOverride.GetValueOrDefault(position), speedMultiplier);

            fishList.Add(fish);
        }
예제 #5
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == nameof(FreshwaterFish))
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }

            else if (fishType == nameof(SaltwaterFish))
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            else
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            var aquariumType = aquariumByName[aquariumName].GetType().Name;

            if (aquariumType == nameof(SaltwaterAquarium) && fishType == nameof(FreshwaterFish) ||
                aquariumType == nameof(FreshwaterAquarium) && fishType == nameof(SaltwaterFish))
            {
                throw new InvalidOperationException(OutputMessages.UnsuitableWater);
            }

            aquariumByName[aquariumName].AddFish(fish);
            return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
        }
예제 #6
0
 public Movement(IFish fish, Vector3 startPos, Vector3 endPos)
 {
     Owner          = fish;
     this._startPos = startPos;
     this._endPos   = endPos;
     Init();
 }
예제 #7
0
 public void UpDate()
 {
     this._timeOver.Clear();
     foreach (var item in _fishes)
     {
         item.Value.OnUpDate();
         if (item.Value.TimeOver())
         {
             this._timeOver.Add(item.Key);
         }
     }
     foreach (var key in this._timeOver)
     {
         IFish       fish = this._fishes[key];
         ResFishInfo info = InfoManager.Instance.GetFishInfo(fish.ObjType);
         level.fishPoolMgr.Recycle(info.name, fish);
         this._fishes.Remove(key);
     }
     _escapeTimeOver.Clear();
     foreach (var fish in _fishesEscaped)
     {
         fish.OnEscapeUpDate();
         if (fish.EscapeTimeOver())
         {
             this._escapeTimeOver.Add(fish);
         }
     }
     foreach (var fish in this._escapeTimeOver)
     {
         ResFishInfo info = InfoManager.Instance.GetFishInfo(fish.ObjType);
         level.fishPoolMgr.Recycle(info.name, fish);
         this._fishesEscaped.Remove(fish);
     }
 }
예제 #8
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            var   aquarium = this.aquariums.FirstOrDefault(x => x.Name == aquariumName);
            IFish fish     = null;

            if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            if ((fishType == "SaltwaterFish" && aquarium.GetType().Name == "SaltwaterAquarium") ||
                (fishType == "FreshwaterFish" && aquarium.GetType().Name == "FreshwaterAquarium"))
            {
                aquarium.AddFish(fish);
                return(String.Format(OutputMessages.EntityAddedToAquarium, fishType, fishName));
            }

            return("Water not suitable.");
        }
예제 #9
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            if (aquariums[aquariumName].GetType().Name.StartsWith("Freshwater") && fishType.StartsWith("Freshwater"))
            {
                aquariums[aquariumName].AddFish(fish);
            }
            else if (aquariums[aquariumName].GetType().Name.StartsWith("Saltwater") && fishType.StartsWith("Saltwater"))
            {
                aquariums[aquariumName].AddFish(fish);
            }
            else
            {
                return(OutputMessages.UnsuitableWater);
            }

            return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
        }
예제 #10
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            var aquarium = aquariums.FirstOrDefault(a => a.Name == aquariumName);

            if (fishType == "FreshwaterFish" && aquarium.GetType().Name == "FreshwaterAquarium")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
                aquarium.AddFish(fish);
            }
            else if (fishType == "SaltwaterFish" && aquarium.GetType().Name == "SaltwaterAquarium")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
                aquarium.AddFish(fish);
            }
            if (fishType != "SaltwaterFish" && fishType != "FreshwaterFish")
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            if (fish == null)
            {
                return(OutputMessages.UnsuitableWater);
            }
            return(string.Format(OutputMessages.FishAdded, fish.GetType().Name, aquariumName));
        }
예제 #11
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish     fish     = null;
            IAquarium aquarium = aquariums.FirstOrDefault(x => x.Name == aquariumName);

            if (fishType != nameof(FreshwaterFish) && fishType != nameof(SaltwaterFish))
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }
            else
            {
                string currentAquariumType = aquarium.GetType().Name;

                if (fishType == "FreshwaterFish" && currentAquariumType == "FreshwaterAquarium")
                {
                    fish = new FreshwaterFish(fishName, fishSpecies, price);
                }
                else if (fishType == "SaltwaterFish" && currentAquariumType == "SaltwaterAquarium")
                {
                    fish = new SaltwaterFish(fishName, fishSpecies, price);
                }
                else
                {
                    return(OutputMessages.UnsuitableWater);
                }
                aquarium.AddFish(fish);
                return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
            }
        }
예제 #12
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)//todo
        {
            IAquarium aquarium = this.aquariums.FirstOrDefault(a => a.Name == aquariumName);
            IFish     fish     = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                throw new InvalidOperationException("Invalid fish type.");
            }

            if ((fish.GetType().Name.Contains("Freshwater") && aquarium.GetType().Name.Contains("Freshwater")) ||
                (fish.GetType().Name.Contains("Saltwater") && aquarium.GetType().Name.Contains("Saltwater")))
            {
                aquarium.AddFish(fish);

                return($"Successfully added {fishType} to {aquariumName}.");
            }
            else
            {
                return("Water not suitable.");
            }
        }
예제 #13
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType != "FreshwaterFish" && fishType != "SaltwaterFish")
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }
            else if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            IAquarium aquarium = aquariums.FirstOrDefault(x => x.Name == aquariumName);
            Fish      fish1    = fish as Fish;

            if (fish1.FIshLivingPlace != aquarium.GetType().Name)
            {
                return("Water not suitable.");
            }
            else
            {
                aquarium.AddFish(fish);
                return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
            }
        }
예제 #14
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            //Posible exception

            IAquarium aquarium = this.aquariums.First(a => a.Name == aquariumName);

            IFish fish = null;

            switch (fishType)
            {
            case "FreshwaterFish":
                fish = new FreshwaterFish(fishName, fishSpecies, price);
                aquarium.AddFish(fish);

                return(aquarium.GetType().Name == "FreshwaterAquarium"
                        ? string.Format(OutputMessages.FishAdded, fishType, aquariumName)
                        : OutputMessages.UnsuitableWater);

            case "SaltwaterFish":
                fish = new SaltwaterFish(fishName, fishSpecies, price);
                aquarium.AddFish(fish);

                return(aquarium.GetType().Name == "SaltwaterAquarium"
                        ? string.Format(OutputMessages.FishAdded, fishType, aquariumName)
                        : OutputMessages.UnsuitableWater);

            default:
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }
        }
예제 #15
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            switch (fishType)
            {
            case "FreshwaterFish":
                fish = new FreshwaterFish(fishName, fishSpecies, price);
                break;

            case "SaltwaterFish":
                fish = new SaltwaterFish(fishName, fishSpecies, price);
                break;

            default:
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            var aquarium = this.aquariums.FirstOrDefault(a => a.Name == aquariumName);

            bool canLiveInWater = (fish.GetType().Name.Contains("Freshwater") && aquarium.GetType().Name.Contains("Freshwater")) ||
                                  (fish.GetType().Name.Contains("Saltwater") && aquarium.GetType().Name.Contains("Saltwater"));

            if (canLiveInWater)
            {
                aquarium.AddFish(fish);
                return(string.Format(OutputMessages.FishAdded, fishType, aquariumName));
            }
            else
            {
                return(string.Format(OutputMessages.UnsuitableWater));
            }
        }
예제 #16
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            var message = OutputMessages.UnsuitableWater;

            var aquarium = this.aquariumRepository.FindByType(aquariumName);


            IFish fish = (IFish)this.fishFactory.Create(fishName, fishType, fishSpecies, price);

            var aquariumType = aquarium.GetType().Name;
            var fishFromType = fish.GetType().Name;

            if (aquariumType.Contains("Fresh") && fishFromType.Contains("Fresh"))
            {
                aquarium.AddFish(fish);
                message = string.Format(OutputMessages.EntityAddedToAquarium, fishFromType, aquarium.Name);
            }


            if (aquariumType.Contains("Salt") && fishFromType.Contains("Salt"))
            {
                aquarium.Fish.Add(fish);
                message = string.Format(OutputMessages.EntityAddedToAquarium, fishFromType, aquarium.Name);
            }

            return(message);
        }
예제 #17
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            if (fish == null)
            {
                throw new InvalidOperationException("Invalid fish type.");
            }

            var aquarium = this.aquariums.FirstOrDefault(x => x.Name == aquariumName);

            if (aquarium.GetType().Name == "FreshwaterAquarium" && fishType == "FreshwaterFish")
            {
                aquarium.AddFish(fish);

                return($"Successfully added {fishType} to {aquariumName}.");
            }

            if (aquarium.GetType().Name == "SaltwaterAquarium" && fishType == "SaltwaterFish")
            {
                aquarium.AddFish(fish);

                return($"Successfully added {fishType} to {aquariumName}.");
            }
            return("Water not suitable.");
        }
예제 #18
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            if (fish == null)
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            IAquarium seachedAqua = aquariums.FirstOrDefault(a => a.Name == aquariumName);

            if (seachedAqua.GetType().Name == "SaltwaterAquarium" && fishType == "FreshwaterFish")
            {
                return($"Water not suitable.");
            }
            if (seachedAqua.GetType().Name == "FreshwaterAquarium" && fishType == "SaltwaterFish")
            {
                return($"Water not suitable.");
            }

            seachedAqua.AddFish(fish);
            return($"Successfully added {fishType} to {aquariumName}.");
        }
예제 #19
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IAquarium aquarium = shopAquariums.FirstOrDefault(el => el.Name == aquariumName);
            IFish     fish     = null;

            if (fishType != "FreshwaterFish" && fishType != "SaltwaterFish")
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }
            if ((fishType == "FreshwaterFish" && aquarium.GetType().Name != "FreshwaterAquarium") || (fishType == "SaltwaterFish" && aquarium.GetType().Name != "SaltwaterAquarium"))
            {
                return(OutputMessages.UnsuitableWater);
            }
            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
                shopAquariums.FirstOrDefault(el => el.Name == aquariumName).AddFish(fish);
            }
            else
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
                shopAquariums.FirstOrDefault(el => el.Name == aquariumName).AddFish(fish);
            }
            //return string.Format(OutputMessages.SuccessfullyAdded, fishType, aquariumName);
            return($"Successfully added {fishType} to {aquariumName}.");
        }
예제 #20
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish     = null;
            var   aquarium = this.aquariums.FirstOrDefault(x => x.Name == aquariumName);

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }

            if (fish == null)
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            var typeOfwater = fish.GetType().Name.Contains("Fresh") ? "Fresh" : "Salt";

            if (!aquarium.GetType().Name.StartsWith(typeOfwater))
            {
                return(string.Format(OutputMessages.UnsuitableWater));
            }

            aquarium.AddFish(fish);

            return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
        }
예제 #21
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == nameof(FreshwaterFish))
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == nameof(SaltwaterFish))
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                throw new InvalidOperationException("Invalid fish type.");
            }

            IAquarium aquarium = aquariums.FirstOrDefault(a => a.Name == aquariumName);

            if (fish.GetType().Name.StartsWith("Fresh") && aquarium.GetType().Name.StartsWith("Fresh") ||
                fish.GetType().Name.StartsWith("Salt") && aquarium.GetType().Name.StartsWith("Salt"))
            {
                aquarium.AddFish(fish);
                return($"Successfully added {fishType} to {aquariumName}.");
            }
            else
            {
                return($"Water not suitable.");
            }
        }
예제 #22
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType.ToLower() == "freshwaterfish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType.ToLower() == "saltwaterfish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            if (fish == null)
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }
            if (!aquariums.ContainsKey(aquariumName))
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidAquariumName);
            }
            IAquarium aquarium = this.aquariums[aquariumName];

            if (fishType.ToLower() == "saltwaterfish" && aquarium.GetType().Name.ToLower() == "freshwateraquarium")
            {
                return(OutputMessages.UnsuitableWater);
            }
            else if (fishType.ToLower() == "freshwaterfish" && aquarium.GetType().Name.ToLower() == "saltwateraquarium")
            {
                return(OutputMessages.UnsuitableWater);
            }
            this.aquariums[aquariumName].AddFish(fish);

            return(String.Format(OutputMessages.EntityAddedToAquarium, fish.GetType().Name, aquarium.Name));
        }
예제 #23
0
 public void Recycle(string strName, IFish fish)
 {
     if (this._pools.ContainsKey(strName))
     {
         this._pools[strName].Release(fish);
     }
 }
예제 #24
0
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            if (fishType != nameof(FreshwaterFish) && fishType != nameof(SaltwaterFish))
            {
                throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
            }

            IFish fish = null;

            var aquariumToCheck = aquariums.FirstOrDefault(x => x.Name == aquariumName);

            //TODO: Must check if aquarium is null??

            if (fishType == nameof(FreshwaterFish) && aquariumToCheck.GetType().Name == nameof(FreshwaterAquarium))
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
                aquariumToCheck.AddFish(fish);
                return(string.Format(OutputMessages.EntityAddedToAquarium, fish.GetType().Name, aquariumName));
            }

            else if (fishType == nameof(SaltwaterFish) && aquariumToCheck.GetType().Name == nameof(SaltwaterFish))
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
                aquariumToCheck.AddFish(fish);
                return(string.Format(OutputMessages.EntityAddedToAquarium, fish.GetType().Name, aquariumName));
            }

            else
            {
                return(OutputMessages.UnsuitableWater);
            }
        }
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            IAquarium aquarium = aquariums.FirstOrDefault(p => p.Name == aquariumName);

            IFish fish = null;

            if (fishType == nameof(FreshwaterFish))
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);

                if (aquarium.GetType().Name == nameof(FreshwaterAquarium))
                {
                    aquarium.AddFish(fish);
                    return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
                }
            }
            else if (fishType == nameof(SaltwaterFish))
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);

                if (aquarium.GetType().Name == nameof(SaltwaterAquarium))
                {
                    aquarium.AddFish(fish);
                    return(string.Format(OutputMessages.EntityAddedToAquarium, fishType, aquariumName));
                }
            }
            else
            {
                throw new InvalidOperationException(string.Format(ExceptionMessages.InvalidFishType));
            }
            return(string.Format(OutputMessages.UnsuitableWater));
        }
예제 #26
0
    public static FishController AddFish(IFish fish)
    {
        var newFish = (FishController)fish;

        takenNames.Add(newFish.FishName);
        return(newFish);
    }
예제 #27
0
파일: Controller.cs 프로젝트: nadsit/Study
        public string AddFish(string aquariumName, string fishType, string fishName, string fishSpecies, decimal price)
        {
            if (fishType != "FreshwaterFish" && fishType != "SaltwaterFish")
            {
                throw new InvalidOperationException("Invalid fish type.");
            }

            IAquarium aquarium = aquariums.FirstOrDefault(a => a.Name == aquariumName);

            string aquariumToFish = string.Empty;

            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish           = new FreshwaterFish(fishName, fishSpecies, price);
                aquariumToFish = "Freshwater";
            }
            else if (fishType == "SaltwaterFish")
            {
                fish           = new SaltwaterFish(fishName, fishSpecies, price);
                aquariumToFish = "Saltwater";
            }

            if (!aquarium.GetType().Name.Contains(aquariumToFish))
            {
                return("Water not suitable.");
            }

            aquarium.AddFish(fish);

            return($"Successfully added {fish.GetType().Name} to {aquarium.Name}.");
        }
예제 #28
0
        public void AddFish(Message msg)
        {
            //change the value of flag
            if (_bInSceneChanging)
            {
                _bInSceneChanging = false;
            }

            MessageFishInfo fishInfo      = JsonReader.Deserialize <MessageFishInfo>(msg.rawString);
            int             iCount        = fishInfo.fishList.Count;
            int             iCurLevelTime = -1;

            for (int i = 0; i < iCount; i++)
            {
                FishInfo info = fishInfo.fishList[i];
                //*2 test
                IFish fish = SpawnFish(info);
                if (fish != null)
                {
                    fishMgr.Add(info.fishId, fish);
                }

                iCurLevelTime = info.createTime;
            }

            if (iCurLevelTime != -1)
            {
                this.PassTime = iCurLevelTime;
            }
        }
예제 #29
0
        public object Create(params object[] value)
        {
            IFish fish = null;

            string  fishType    = value[1].ToString();
            string  fishName    = value[0].ToString();
            string  fishSpecies = value[2].ToString();
            decimal fishPrice   = Convert.ToDecimal(value[3]);

            if (fishType == "FreshwaterFish" || fishType == "SaltwaterFish")
            {
                if (fishType == "FreshwaterFish")
                {
                    fish = new FreshwaterFish(fishName, fishSpecies, fishPrice);
                }

                if (fishType == "SaltwaterFish")
                {
                    fish = new SaltwaterFish(fishName, fishSpecies, fishPrice);
                }

                return(fish);
            }

            throw new InvalidOperationException(ExceptionMessages.InvalidFishType);
        }
        public string AddFish(string aquariumName,
                              string fishType, string fishName,
                              string fishSpecies, decimal price)
        {
            IFish fish = null;

            if (fishType == "FreshwaterFish")
            {
                fish = new FreshwaterFish(fishName, fishSpecies, price);
            }
            else if (fishType == "SaltwaterFish")
            {
                fish = new SaltwaterFish(fishName, fishSpecies, price);
            }
            else
            {
                throw new InvalidOperationException
                          (ExceptionMessages.InvalidFishType);
            }

            IAquarium aquarium = GetAquariumByName(aquariumName);

            if (((fish is FreshwaterFish) && (aquarium is FreshwaterAquarium)) ||
                ((fish is SaltwaterFish) && (aquarium is SaltwaterAquarium)))
            {
                aquarium.AddFish(fish);
                return(string.Format(OutputMessages
                                     .EntityAddedToAquarium, fishType, aquariumName));
            }

            return(OutputMessages.UnsuitableWater);
        }
예제 #31
0
파일: Tuna.cs 프로젝트: kkozmic/PaulTest
 public Tuna(IFish fish, IFisherman fisherman, IBoat boat)
 {
 }