예제 #1
0
    public void Submit(Adaptation.BodySlot bodyType)
    {
        exPanel.ActivateEvoPanel();

        if (currentSlotType != bodyType)
        {
            if (bodyType == Adaptation.BodySlot.BODY)
            {
                tree.SetPanelStateBODY();
            }

            else if (bodyType == Adaptation.BodySlot.HEAD)
            {
                tree.SetPanelStateHEAD();
            }

            else if (bodyType == Adaptation.BodySlot.LIMBS)
            {
                tree.SetPanelStateLIMBS();
            }
            else if (bodyType == Adaptation.BodySlot.TAIL)
            {
                tree.SetPanelStateTAIL();
            }

            currentSlotType = bodyType;
        }

        mainPanel.Deactivate();
    }
예제 #2
0
 public void ToBuffer(ref TSMessagePackWriter writer)
 {
     writer.WriteByte(SyncByte);
     //TransportErrorIndicator   PayloadUnitStartIndicator   TransportPriority   PID
     //0 1   0   0000 0000 0000 0
     //writer.WriteUInt16((ushort)((0b_0100_0000_0000_0000 & (PayloadUnitStartIndicator<<14)) | PID));
     writer.WriteUInt16((ushort)((TransportErrorIndicator << 15) | (PayloadUnitStartIndicator << 14) | PID));
     writer.WriteByte((byte)((byte)AdaptationFieldControl | ContinuityCounter));
     if (PackageType == PackageType.PAT ||
         PackageType == PackageType.PMT ||
         PackageType == PackageType.Data_Start ||
         PackageType == PackageType.Data_End ||
         PackageType == PackageType.SDT)
     {
         if (Adaptation != null)
         {
             writer.Skip(1, out int AdaptationLengthPosition);
             Adaptation.ToBuffer(ref writer);
             writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AdaptationLengthPosition - 1), AdaptationLengthPosition);
         }
         else
         {
             writer.WriteByte(0);
         }
     }
 }
        public string Post()
        {
            DBConnect conn = new DBConnect();

            try
            {
                Adaptation show   = conn.GetShow().Find(Show => Show.Id == int.Parse(Request.Form["showId"]));
                Season     season = new Season(-5, show, Request.Form["title"]);
                if (Request.Form.ContainsKey("id"))
                {
                    season.Id = int.Parse(Request.Form["id"]);
                }
                if (Request.Form.ContainsKey("originalTitle"))
                {
                    season.OriginalTitle = Request.Form["originalTitle"];
                }
                if (Request.Form.ContainsKey("description"))
                {
                    season.Description = Request.Form["description"];
                }
                conn.AddSeason(season);
            }
            catch (Exception exception)
            {
                return(exception.Message);
            }

            return("OK");
        }
예제 #4
0
    public void Activate(Critter critter, Adaptation.BodySlot newType)
    {
        gameObject.SetActive(true);

        InitializeSlots(critter, newType);

        PopulatePanel();
    }
예제 #5
0
    public void Activate(Adaptation newEvo)
    {
        text = GetComponentInChildren<Text>();

        evo = newEvo;
        value = evo.cost;

        text.text = value + "";
    }
예제 #6
0
    public void Activate(Adaptation evo)
    {
        if (evo != selectedEvo)
        {
            gameObject.SetActive(true);

            PopulateInfo(evo);
        }
    }
 public IResult Update(Adaptation adaptation)
 {
     if (adaptation.HizmetinGecKurum == null)
     {
         return(new ErrorResult(Messages.UpdateNegative));
     }
     _adaptationDal.Update(adaptation);
     return(new SuccessResult(Messages.UpdatePositive));
 }
 public IResult Add(Adaptation adaptation)
 {
     if (adaptation.HizmetinGecKurum == null)
     {
         return(new ErrorDataResult <Adaptation>(Messages.Error));
     }
     _adaptationDal.Add(adaptation);
     return(new SuccessResult(Messages.AddPositive));
 }
예제 #9
0
    public void Activate(Adaptation evo, Adaptation.BodySlot newType)
    {
        Initialize();

        evoButton = evo.GetEvoButton().GetComponent<AdaptationButton>();

        Icon.sprite = evo.GetIcon();
        Icon.color = new Color32(255, 255, 255, 255);

        Background.color = evoButton.GetHexColor();
    }
예제 #10
0
    public void Initialize(Critter owner, int index, Adaptation.BodySlot type)
    {
        critter = owner;
        number = index;
        slotType = type;

        if(index == 0){
            isActive = true;
        }
        else{
            isActive = false;
        }
    }
예제 #11
0
    public void Deactivate()
    {
        if (!SimpleInfo)
        {
            selectedEvo = null;

            if (!SimpleInfo) {
                bobbleCounter.DeactivateBobbles();
            }
        }

        gameObject.SetActive(false);
    }
        public string Post()
        {
            DBConnect conn = new DBConnect();

            try
            {
                Adaptation adaptation = new Adaptation(-5, Request.Form["title"], "");
                if (Request.Form.ContainsKey("id"))
                {
                    adaptation.Id = int.Parse(Request.Form["id"]);
                }
                if (Request.Form.ContainsKey("originalTitle"))
                {
                    adaptation.OriginalTitle = Request.Form["originalTitle"];
                }
                if (Request.Form.ContainsKey("description"))
                {
                    adaptation.Description = Request.Form["description"];
                }
                if (Request.Form.ContainsKey("franchiseId"))
                {
                    adaptation.Franchise = conn.GetFranchise().Find(Franchise => Franchise.Id == int.Parse(Request.Form["franchiseId"]));
                }

                if (Request.Form.ContainsKey("genre"))
                {
                    // Array will be converted in string
                    // name;name;...
                    string       genres    = Request.Form["genre"];
                    string[]     genreArr  = genres.Split(';');
                    List <Genre> genreList = new List <Genre>();

                    foreach (var genre in genreArr)
                    {
                        genreList.Add(new Genre(genre));
                    }

                    adaptation.Genre = genreList;
                }


                conn.AddAdaptation(adaptation);
            }
            catch (Exception exception)
            {
                return(exception.Message);
            }

            return("OK");
        }
예제 #13
0
    public void InitializeSlots(Critter newCritter, Adaptation.BodySlot type)
    {
        SlotData[] allSlots = newCritter.GetSlots().ToArray();
        currentSlotType = type;

        slots = new SlotData[3];

        foreach (SlotData item in allSlots)
        {
            if (item.GetSlotType() == type)
            {
                slots[item.GetNumber()] = item;
            }
        }
    }
예제 #14
0
    private void BuildIcons(Adaptation evo)
    {
        boonIcons = evo.GetBoonSprites();
        baneIcons = evo.GetBaneSprites();
        boonColors = evo.GetBoonColors();
        baneColors = evo.GetBaneColors();

        if (evo.isMajor)
        {
            spcIcon = evo.GetSpecialSprite();
            spcColor = evo.GetSpecialColor();
            restrictIcon = evo.GetRestictionSprite();
            restictColor = evo.GetRestrictColor();
        }
    }
예제 #15
0
    public void PopulateSlot()
    {
        slot = player.GetCritter().GetSpecificSlot(type, index);

        if(!slot.GetEvo()){
            activeEvo = null;
            Icon.sprite = null;
            Icon.color = new Color32(255, 255, 255, 0);
        }
        else{
            activeEvo = slot.GetEvo();
            Icon.sprite = slot.GetEvo().GetIcon();
            Icon.color = new Color32(255, 255, 255, 255);
        }
    }
예제 #16
0
 public void EquipSlot(Adaptation newEvo)
 {
     if(isActive){
         if (newEvo.slot == slotType)
         {
             if (evo)
             {
                 evo.Unequip(critter, this);
             }
             evo = newEvo;
             critter.equipedEvos.Add(evo);
             isFilled = true;
         }
     }
 }
예제 #17
0
    public void CheckState(Adaptation startEvo, Adaptation endEvo)
    {
        Adaptation.playerBuyState startState = startEvo.GetCurrentBuyState();
        Adaptation.playerBuyState endState = endEvo.GetCurrentBuyState();

        if(startState == Adaptation.playerBuyState.UNLOCKED){
            currentState = Adaptation.playerBuyState.LOCKED;
        }

        else{
            currentState = endState;
        }

        SetColor(currentState);
    }
예제 #18
0
    public void Activate(Adaptation evo)
    {
        header = GetComponentInChildren<Text>();

        ClearLists();

        targetEvo = evo;

        if (targetEvo)
        {
            header.text = targetEvo.name;

            BuildIcons(targetEvo);
            SetIconImages(targetEvo);
        }
    }
예제 #19
0
    public void GenerateLine(GameObject end, GameObject start)
    {
        startEvo = start;
        endEvo = end;
        Vector3 dif = startEvo.transform.localPosition - endEvo.transform.localPosition;
        gameObject.transform.localPosition = startEvo.transform.localPosition;

        transform.rotation = Quaternion.LookRotation(Vector3.forward, dif);
        float hyp = Mathf.Sqrt(dif.x * dif.x + dif.y * dif.y);

        gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(10, hyp);

        startAdaptation = start.GetComponent<AdaptationButton>().GetAdaptation();
        endAdaptation = end.GetComponent<AdaptationButton>().GetAdaptation();

        CheckState(startAdaptation, endAdaptation);
    }
        public string Get(int id)
        {
            DBConnect         conn     = new DBConnect();
            List <Adaptation> showList = conn.GetShow();
            Adaptation        s        = null;

            foreach (var show in showList)
            {
                if (show.Id == id)
                {
                    s = show;
                }
            }

            string output = JsonConvert.SerializeObject(s);

            return(output);
        }
예제 #21
0
    public static void PopulateTraitPanel()
    {
        activeEvo = EvoDescriptionPanel.GetSelectedEvo();

        if (activeEvo)
        {
            Adaptation.BodySlot slot = activeEvo.slot;
            PopulateSlots(slot);

            if (activeSlot) {
                if (activeSlot.activeEvo) {
                    slotEvo = activeSlot.activeEvo;
                }
                else
                {
                    slotEvo = null;
                }
            }
            else
            {
                slotEvo = null;
            }

            SlotCheck();

            if (traitDetails && slotEvo)
            {
                if (activeEvo.isMajor)
                {
                    if (!traitDetails.gameObject.activeInHierarchy)
                    {
                        traitDetails.Activate(slotEvo);
                    }

                    traitDetails.PopulateInfo(slotEvo);
                }

                else
                {
                    traitDetails.Deactivate();
                }
            }
        }
    }
예제 #22
0
    public void SetSlotType(Adaptation.BodySlot newtype)
    {
        type = newtype;

        AssignSlot();

        if (!slot.GetIsActive())
        {
            Deactivate();
        }
        else if (slot.GetIsActive())
        {
            if (!isActive)
            {
                Activate();
            }
        }

        PopulateSlot();
    }
예제 #23
0
    //Runs preview to observe changes that will result from buy/equipping viewed adaptation
    public void PreviewChanges(Adaptation testEvo)
    {
        lockState lockLoco = lockState.NONE;
        lockState lockRest = lockState.NONE;

        if (TraitsPanel.GetSelectedSlot())
        {
            equippedEvo = TraitsPanel.GetSelectedSlot().activeEvo;
        }
        else
        {
            equippedEvo = null;
        }

        lockLoco = LocoLock(testEvo, equippedEvo);
        lockRest = RestrictionLock(CalculateNewRestrictions(critter, testEvo, equippedEvo).ToArray());

        //print(testEvo.name + ": RestrictionLock = " + lockRest + "\r\n");

        SetLocks(lockLoco, lockRest);
    }
예제 #24
0
    private void SetColor(Adaptation.playerBuyState newState)
    {
        sprites = GetComponentsInChildren<Image>();
        Image spriteLight = sprites[1];

        if(newState == Adaptation.playerBuyState.LOCKED){
            spriteLight.color = lockedLineColor;
        }
        else if(newState == Adaptation.playerBuyState.UNLOCKED){
            spriteLight.color = unlockedLineColor;
        }
        else if(newState == Adaptation.playerBuyState.ACTIVE){
            spriteLight.color = activeLineColor;
        }
        else if(newState == Adaptation.playerBuyState.NOREFUND){
            spriteLight.color = disabledColor;
        }
        else if(newState == Adaptation.playerBuyState.CANEQUIP){
            spriteLight.color = activeLineColor;
        }
        else if(newState == Adaptation.playerBuyState.EQUIPED){
            spriteLight.color = activeLineColor;
        }
    }
예제 #25
0
    float EvoSurvivalCheck(Adaptation evo)
    {
        float score = 0;
        int biome;
        int climate;
        int geo;
        int temp;

        foreach(Hex habitat in habitats){
            biome = (int)habitat.GetBiome();
            climate = (int)habitat.GetClimate();
            geo = (int)habitat.GetGeography();
            temp = (int)habitat.GetTemp();

            foreach(Adaptation.BiomeAdaptition item in evo.BiomeBoons){
                if(item == ((Adaptation.BiomeAdaptition)biome)){
                    score++;
                }
            }
            foreach(Adaptation.BiomeAdaptition item in evo.BiomeBanes){
                if(item == ((Adaptation.BiomeAdaptition)biome)){
                    score--;
                }
            }
            foreach(Adaptation.ClimateAdaptation item in evo.ClimateBoons){
                if(item == ((Adaptation.ClimateAdaptation)climate)){
                    score++;
                }
            }
            foreach(Adaptation.ClimateAdaptation item in evo.ClimateBanes){
                if(item == ((Adaptation.ClimateAdaptation)climate)){
                    score--;
                }
            }
            foreach(Adaptation.GeoAdaptation item in evo.GeoBoons){
                if(item == ((Adaptation.GeoAdaptation)geo)){
                    score++;
                }
            }
            foreach(Adaptation.GeoAdaptation item in evo.GeoBanes){
                if(item == ((Adaptation.GeoAdaptation)geo)){
                    score--;
                }
            }
            foreach(Adaptation.TempAdaptation item in evo.TempBoons){
                if(item == ((Adaptation.TempAdaptation)temp)){
                    score++;
                }
            }
            foreach(Adaptation.TempAdaptation item in evo.TempBanes){
                if(item == ((Adaptation.TempAdaptation)temp)){
                    score--;
                }
            }
        }
        score /= 4;
        score /= habitats.Count;

        if (score > 1)
        {
            score = 1;
        }

        return score;
    }
        public ActionResult AdaptationAdd(Adaptation adaptation)

        {
            _adaptationService.Add(adaptation);
            return(RedirectToAction(""));
        }
예제 #27
0
        public override bool Find(IMap map, IHeuristic heuristic)
        {
            if (Mutate == null || Crossover == null || Fitness == null || Selection == null)
            {
                throw new System.Exception("GA cant run without all operators");
            }

            if (Fitness.Heuristic == null)
            {
                Fitness.Heuristic = heuristic;
            }

            var Adaptation = new Adaptation(map);
            var rand       = RandomFactory.Rand;
            var startNode  = map.StartNode;
            var endNode    = map.EndNode;

            for (int i = 0; i < PopulationSize; i++)
            {
                Populations.Add(new Genome(map));
            }


            CalcFitness();


            var step = 0;

            OnStart(BuildArgs(step, map));
            for (int i = 0; i < GenerationLimit; i++)
            {
                var newpopulations = new List <IGenome>();
                Populations = Populations.OrderBy(o => o.Fitness).ToList();
                for (int j = 0; j < BestSolutionToPick; j++)
                {
                    Populations[j].Fitness = Fitness.Calc(Populations[j]);
                    newpopulations.Add(Populations[j]);
                }
                var ran   = rand.Next(1, Populations.Count);
                var best  = Populations.First().ListNodes;
                var best2 = Selection.Select(Populations).ListNodes;
                endNode = best.Last();
                if (endNode.Equals(map.EndNode))
                {
                    endNode.Direction = DirectionMovement.None;
                    map.EndNode       = endNode;

                    map.UpdateClosedList(new List <Node>());
                    map.UpdateOpenList(new List <Node>());


                    //if (!best.First().Equals(map.StartNode))
                    OnEnd(BuildArgs(step, map, true));
                    Generations = i;
                    return(true);
                }
                map.UpdateClosedList(best);
                map.UpdateOpenList(best2);

                while (newpopulations.Count < Populations.Count)
                {
                    // Selection
                    var nodemom = Selection.Select(Populations);
                    var nodedad = Selection.Select(Populations);
                    // CrossOver
                    var cross = Crossover.Calc(new CrossoverOperation(nodemom, nodedad));

                    //if (!cross.Mom.ListNodes.First().Equals(map.StartNode)) { }
                    //if (!cross.Dad.ListNodes.First().Equals(map.StartNode)) { }

                    // Mutation
                    nodemom = Mutate.Calc(cross.Mom);
                    nodedad = Mutate.Calc(cross.Dad);

                    //if (!nodemom.ListNodes.First().Equals(map.StartNode)) { }
                    //if (!nodedad.ListNodes.First().Equals(map.StartNode)) { }

                    // Adaptation
                    nodemom         = Adaptation.Calc(nodemom);
                    nodedad         = Adaptation.Calc(nodedad);
                    nodemom.Fitness = Fitness.Calc(nodemom);
                    nodedad.Fitness = Fitness.Calc(nodedad);

                    //if (!nodemom.ListNodes.First().Equals(map.StartNode)) { }
                    //if (!nodedad.ListNodes.First().Equals(map.StartNode)) { }

                    // Add in new population
                    newpopulations.Add(nodemom);
                    newpopulations.Add(nodedad);
                }
                Populations = newpopulations.ToList();
                OnStep(BuildArgs(step++, map));
            }
            Generations = GenerationLimit;
            OnEnd(BuildArgs(step, map, false));
            return(false);
        }
예제 #28
0
        public List <Event> ICSStringToEventsObj(string _icalString, Adaptation adaptation)
        {
            var _separator = "";

            if (_icalString.Contains("\r\n"))
            {
                _separator = "\r\n";
            }
            else
            {
                _separator = "\r";
            }


            var  _lines     = _icalString.Split(_separator).ToList();
            var  _events    = new List <Event>();
            bool _newEvent  = false;
            var  _tempEvent = new Event();

            _lines.ForEach(x =>
            {
                if (x == "BEGIN:VEVENT")
                {
                    _newEvent  = true;
                    _tempEvent = new Event();
                }

                if (x == "END:VEVENT")
                {
                    _newEvent = false;
                    if (adaptation == Adaptation.C_Trace_De)
                    {
                        var _splitEvent = _tempEvent.Name.Split("/");

                        _splitEvent.ToList().ForEach(y =>
                        {
                            var _newTempEvent = new Event()
                            {
                                Name  = y.Trim(),
                                Start = _tempEvent.Start
                            };

                            _events.Add(_newTempEvent);
                        });
                    }
                    else
                    {
                        _events.Add(_tempEvent);
                    }
                }

                if (_newEvent)
                {
                    if (x.StartsWith("DTSTART"))
                    {
                        _tempEvent.Start = DateTime.ParseExact(x.Split(":")[1], "yyyyMMdd", CultureInfo.InvariantCulture);
                    }
                    else if (x.StartsWith("SUMMARY"))
                    {
                        _tempEvent.Name = x.Split(":")[1];

                        if (adaptation == Adaptation.C_Trace_De)
                        {
                            _tempEvent.Name = x.Split(":")[2];
                        }
                    }
                }
            });

            return(_events);
        }
예제 #29
0
 public void DecreaseGeoPref(Adaptation.GeoAdaptation geo)
 {
     if (geo == Adaptation.GeoAdaptation.SaltWater)              { geoPref[0] -= 1; }
                                                                             if (geo == Adaptation.GeoAdaptation.Islands)                { geoPref[1] -= 1; }
                                                                             if (geo == Adaptation.GeoAdaptation.Flat)                   { geoPref[2] -= 1; }
                                                                             if (geo == Adaptation.GeoAdaptation.Hills)                  { geoPref[3] -= 1; }
                                                                             if (geo == Adaptation.GeoAdaptation.Mountains)              { geoPref[4] -= 1; }
 }
예제 #30
0
 public void DecreaseBiomePref(Adaptation.BiomeAdaptition biome)
 {
     biomePref[(int)biome] -= 1;
 }
 public IResult Delete(Adaptation adaptation)
 {
     throw new NotImplementedException();
 }
예제 #32
0
    //Adds a lead for each special effect in 'specials' List<T>
    public void AddLeads(Adaptation leadHolder)
    {
        foreach (Adaptation.specialEffect item in leadHolder.specials)
        {
            AddLead(item);
        }

        leads.TrimExcess();
    }
예제 #33
0
    //Populates leads to all prerequisite adaptations to indicate that they will telegraph this abilitiy.
    public void TelegraphLeads(Adaptation mother, int rounds)
    {
        rounds -= 1;

        foreach (Adaptation item in Prerequisites1)
        {
            item.AddLeads(mother);

            if (rounds >= 0)
            {
                item.TelegraphLeads(mother, rounds);
            }
        }
        foreach (Adaptation item in Prerequisites2)
        {
            item.AddLeads(mother);

            if (rounds >= 0)
            {
                item.TelegraphLeads(mother, rounds);
            }
        }
    }
예제 #34
0
    private void Evolve()
    {
        if (!nextEvo)
        {
            if(unlockedEvos.Count > 0){
                DetermineNextEvo(DetermineNextEvoType());
            }
            else{nextEvo = null;}
        }
        else if (nextEvo)
        {
            if (evoPts >= nextEvo.cost)
            {
                nextEvo.BuyEvo(this);
                unlockedEvos.TrimExcess();

                nextEvo = null;

                if(unlockedEvos.Count > 0){
                    DetermineNextEvo(DetermineNextEvoType());
                }
            }
        }

        tokenDensity = (200 / gameControl.tokenDensity) * size;
    }
예제 #35
0
    private Adaptation DetermineNextEvo(Adaptation.Type type)
    {
        Adaptation.BodySlot[] openSlots = GetOpenSlotsTypes();

        NextEvoOptions.Clear();
        NextEvoOptions.TrimExcess();

        foreach (Adaptation item in unlockedEvos)
        {
            if (item.type == type)
            {
                if (item.isMajor)
                {
                    if (item.PositiveEquipCheck(this))
                    {
                        NextEvoOptions.Add(item);
                        NextEvoOptions.Add(item);
                    }
                    else if (openSlots.Length > 0)
                    {
                        for (int i = 0; i < openSlots.Length; i++)
                        {
                            if (openSlots[i] == item.slot)
                            {
                                NextEvoOptions.Add(item);
                                NextEvoOptions.Add(item);
                            }
                        }
                    }
                }
                else
                {
                    NextEvoOptions.Add(item);
                }
            }
        }

        if (NextEvoOptions.Count > 0)
        {
            nextEvo = FinalizeNextEvo(type, NextEvoOptions);
        }

        else{ nextEvo = null;}

        NextEvoOptions.Clear();
        NextEvoOptions.TrimExcess();

        return nextEvo;
    }
예제 #36
0
 public void UnequipSpecials(Adaptation evo)
 {
     GenerateDiet();
     GenerateLocomotion();
 }
        public ActionResult AdaptationUpdate(Adaptation adaptation)

        {
            _adaptationService.Update(adaptation);
            return(RedirectToAction(""));
        }
예제 #38
0
 //Adds lead if not already in the 'leads' List<T>
 private void AddLead(Adaptation.specialEffect newLead)
 {
     if (!leads.Contains(newLead))
     {
         leads.Add(newLead);
     }
 }
예제 #39
0
    private Adaptation FinalizeNextEvo(Adaptation.Type type, List<Adaptation> options)
    {
        Adaptation evo;
        int evoIndex;

        if(type == Adaptation.Type.SURVIVAL){
            evo = PickSurvivalEvo(options);
        }
        else if (type == Adaptation.Type.DIET)
        {
            evo = PickFeedingEvo(options);
        }
        else if (type == Adaptation.Type.HUNTING)
        {
            evo = PickFeedingEvo(options);
        }
        else if (type == Adaptation.Type.MOBILITY)
        {
            evo = PickLocomotionEvo(options);
        }
        else
        {
            evoIndex = Random.Range(0, options.Count);
            evo = options[evoIndex];
        }

        return evo;
    }
예제 #40
0
    private void AddSlot(Adaptation.BodySlot slotType)
    {
        int index = 0;
        SlotData newSlot = new SlotData();

        foreach(SlotData item in slots){
            if(item.GetSlotType() == slotType){
                index++;
            }
        }

        if(index < 3){
            newSlot.Initialize(this, index, slotType);
            slots.Add(newSlot);
            slots.TrimExcess();
        }
    }
예제 #41
0
    public void DeactivateSlot(Adaptation.BodySlot slotType)
    {
        for(int i = slots.Count - 1; i >= 0; i--){
            if(slots[i].GetSlotType() == slotType){
                if(slots[i].GetIsActive() == true){
                    SlotData targetSlot = slots[i];

                    if(targetSlot.GetIsFilled())
                    {
                        Adaptation evo = targetSlot.GetEvo();

                        if (evo) {
                            evo.Unequip(this, targetSlot);
                        }
                    }

                    targetSlot.Deactivate();
                    break;
                }
            }
        }
    }