コード例 #1
0
ファイル: PeerlessAltar.cs プロジェクト: tflynt91/TrueUO
 public virtual void AddFighter(Mobile fighter)
 {
     if (!Fighters.Contains(fighter))
     {
         Fighters.Add(fighter);
     }
 }
コード例 #2
0
        public static Fighter GetOrCreateFighter(string fullName)
        {
            if (fullName.Equals("Unknown") || fullName.Equals("Uknown"))
            {
                return(null);
            }

            var index = fullName.LastIndexOf(' ');

            if (index < 0)
            {
                return(null);
            }

            var firstname = fullName.Substring(0, index);
            var lastname  = fullName.Substring(index + 1);

            var fighter
                = Fighters
                  .FirstOrDefault(f => f.LastName.Equals(lastname) && (f.FirstName.Contains(firstname) || firstname.Contains(f.FirstName)));

            if (fighter == null)
            {
                fighter = new Fighter(NextFighterId++, firstname, lastname, null);
                Fighters.Add(fighter);
            }

            return(fighter);
        }
コード例 #3
0
        private void Awake()
        {
            // Setup dictionary from ScriptableObject data
            foreach (FighterData data in FighterDataList)
            {
                data.SetupDictionary();
            }

            Fighter1 = new Fighter();
            Fighter2 = new Fighter();

            Fighters.Add(Fighter1);
            Fighters.Add(Fighter2);

            debugP2Attack = false;
            debugP2Guard  = false;

            if (roundUI != null)
            {
                RoundUIAnimator = roundUI.GetComponent <Animator>();
            }

            stateMachine = new StateMachine();
            stateMachine.AddState(new StopState(this));
            stateMachine.AddState(new IntroState(this));

            FightState fightState = new FightState(this);

            fightState.DamageOccurred += (damaged, damagePos, damageResult) => DamageOccurred?.Invoke(damaged, damagePos, damageResult);             // TODO refactor this
            stateMachine.AddState(new FightState(this));
            stateMachine.AddState(new KOState(this));
            stateMachine.AddState(new EndState(this));

            stateMachine.SetState <StopState>();
        }
コード例 #4
0
    public StationData(StationDesignData data)
    {
        designData  = data;
        DisplayName = designData.Design.Name;

        //Add Fighters
        foreach (KeyValuePair <FighterDefinition, int> keyVal in designData.Fighters)
        {
            Fighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in designData.HeavyFighters)
        {
            HeavyFighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in designData.AssaultPods)
        {
            AssaultPods.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }

        ammo            = designData.Ammo;
        ammoMax         = designData.Ammo;
        power           = designData.PowerStorage;
        powerMax        = designData.PowerStorage;
        crew            = designData.Crew;
        crewMax         = designData.Crew;
        troops          = designData.Troops;
        troopsMax       = designData.Troops;
        powerGenerated  = designData.PowerGenerated;
        research        = designData.Research;
        mining          = designData.Mining;
        repair          = designData.Repair;
        ammoGenerated   = designData.AmmoGenerated;
        transporter     = designData.Transporter;
        medical         = designData.Medical;
        boardingDefense = designData.BoardingDefense;
        diplomacy       = designData.Diplomacy;
        sensor          = designData.Sensor;
        longRangeSensor = designData.LongRangeSensor;
        advancedSensor  = designData.AdvancedSensor;

        health              = designData.Health;
        healthMax           = designData.Health;
        armorHealth         = designData.ArmorHealth;
        armorHealthMax      = designData.ArmorHealth;
        armorRating         = designData.ArmorRating;
        shieldHealth        = designData.ShieldHealth;
        shieldHealthMax     = designData.ShieldHealth;
        shieldRating        = designData.ShieldRating;
        shieldRechargeRate  = designData.ShieldRechargeRate;
        shieldRechargeDelay = designData.ShieldRechargeDelay;

        SetCrewEffeciency();

        foreach (SavedWeapon savedWeapon in designData.Weapons)
        {
            Weapons.Add(new AttachedWeapon(savedWeapon.weapon));
        }
    }
コード例 #5
0
        public void InitialSetup(Fighter firstFighter, Fighter secondFighter)
        {
            Fighters.Clear();
            Fighters.Add(firstFighter);
            Fighters.Add(secondFighter);

            PickInitialActor();
            WindowController.Hit.Add("Game started!");
            WindowController.Hit.Add("FIGHTING STAGE: " + Stage + " - " + GetActor().Name + " goes first!");
            OutputFighterStatus(); // Creates the fighter status blocks (HP/Mana/Stamina)
            OutputFighterStats();  // Creates the fighter stat blocks (STR/DEX/END/INT/WIL)
            WindowController.Info.Add("[url=http://www.f-list.net/c/rendezvous%20fight/]Visit this page for game information[/url]");
            IsActive = true;
            WindowController.UpdateOutput(this);
        }
コード例 #6
0
ファイル: FightData.cs プロジェクト: snakeddp/cookiebot
 protected void AddFighter(GameFightFighterInformations infos)
 {
     if (infos is GameFightMonsterInformations monsterInfo)
     {
         Monsters.Add(new Monster(monsterInfo.ContextualId, monsterInfo.Disposition.CellId, monsterInfo.Stats,
                                  monsterInfo.TeamId, monsterInfo.Alive, monsterInfo.CreatureGenericId, monsterInfo.CreatureGrade));
     }
     else if (infos is GameFightCompanionInformations companionInfo)
     {
         Companions.Add(new Companion(companionInfo.ContextualId, companionInfo.Disposition.CellId,
                                      companionInfo.Stats, companionInfo.TeamId, companionInfo.Alive, companionInfo.CompanionGenericId,
                                      companionInfo.Level, companionInfo.MasterId));
     }
     else
     {
         Fighters.Add(new Fighter(infos.ContextualId, infos.Disposition.CellId, infos.Stats, infos.TeamId,
                                  infos.Alive));
     }
 }
コード例 #7
0
        public void Add(IFighter newFighter, bool setupDisplayNamesAfterAdd = true)
        {
            newFighter.Killed += _onFighterKilled;
            newFighter.SetTeam(this);

            Fighters.Add(newFighter);

            if (setupDisplayNamesAfterAdd)
            {
                SetupDisplayNames();
            }

            Shade fighterAsShade = newFighter as Shade;

            if (fighterAsShade != null)
            {
                fighterAsShade.FighterSealed += _onFighterSealed;
            }

            FighterAddedEventArgs e = new FighterAddedEventArgs(newFighter);

            OnFighterAdded(e);
        }
コード例 #8
0
ファイル: FightData.cs プロジェクト: Teles1/Cookie
 protected void AddFighter(GameFightFighterInformations infos)
 {
     lock (CheckLock)
     {
         if (infos is GameFightMonsterInformations monsterInfo)
         {
             Monsters.Add(new Monster(monsterInfo.ContextualId, monsterInfo.Disposition.CellId, monsterInfo.Stats,
                                      (uint)monsterInfo.TeamId, monsterInfo.Alive, monsterInfo.CreatureGenericId, (byte)monsterInfo.CreatureGrade));
         }
         //else if (infos is GameFightCompanion companionInfo)
         //    Companions.Add(new Companion(companionInfo.ContextualId, companionInfo.Disposition.CellId,
         //        companionInfo.Stats, companionInfo.TeamId, companionInfo.Alive, companionInfo.CompanionGenericId,
         //        companionInfo.Level, companionInfo.MasterId));
         else if (infos is GameFightCharacterInformations)
         {
             Fighters.Add(new Fighter(infos.ContextualId, infos.Disposition.CellId, infos.Stats, (uint)infos.TeamId,
                                      infos.Alive));
         }
         else
         {
             throw new Exception($"Typeof({infos.TypeID}) [{infos.GetType()}] type is missing on AddFighter()");
         }
     }
 }
コード例 #9
0
ファイル: ShipData.cs プロジェクト: regstar/OpenSpace4x
    public ShipData(ShipDesignData shipDesignData)
    {
        designData  = shipDesignData;
        DisplayName = designData.Design.Name;

        ForeSection      = new ShipQuadrant(this, designData.ForeQuadrant, QuadrantTypes.Fore);
        AftSection       = new ShipQuadrant(this, designData.AftQuadrant, QuadrantTypes.Aft);
        StarboardSection = new ShipQuadrant(this, designData.StarboardQuadrant, QuadrantTypes.Starboard);
        PortSection      = new ShipQuadrant(this, designData.PortQuadrant, QuadrantTypes.Port);
        CenterSection    = new ShipQuadrant(this, designData.CenterQuadrant, QuadrantTypes.Center);

        //Add Fighters
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.Fighters)
        {
            Fighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.HeavyFighters)
        {
            HeavyFighters.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }
        foreach (KeyValuePair <FighterDefinition, int> keyVal in shipDesignData.AssaultPods)
        {
            AssaultPods.Add(new FighterComplement(keyVal.Key, keyVal.Value));
        }

        fuelMax         = designData.Fuel;
        fuel            = fuelMax;
        ammo            = designData.Ammo;
        ammoMax         = designData.Ammo;
        power           = designData.PowerStorage;
        powerMax        = designData.PowerStorage;
        crew            = designData.Crew;
        crewMax         = designData.Crew;
        supplies        = designData.Supplies;
        suppliesMax     = designData.Supplies;
        troops          = designData.Troops;
        troopsMax       = designData.Troops;
        commandPoints   = designData.CommandPoints;
        mass            = designData.Mass;
        powerGenerated  = designData.PowerGenerated;
        FTLSpeed        = designData.FTLSpeed;
        research        = designData.Research;
        mining          = designData.Mining;
        repair          = designData.Repair;
        ammoGenerated   = designData.AmmoGenerated;
        transporter     = designData.Transporter;
        medical         = designData.Medical;
        cloakingPower   = designData.CloakingPower;
        stealth         = designData.Stealth;
        boardingDefense = designData.BoardingDefense;
        colonies        = designData.Colonies;
        diplomacy       = designData.Diplomacy;
        sensor          = designData.Sensor;
        longRangeSensor = designData.LongRangeSensor;
        advancedSensor  = designData.AdvancedSensor;

        CalculateEngines();
        AttackDirection = designData.Design.attackDirection;
        AttackStyle     = designData.Design.attackStyle;
        if (designData.Design.attackRange != -1)
        {
            attackRange = designData.Design.attackRange;
        }
        else
        {
            attackRange = designData.maxRange;
        }

        SetCrewEffeciency();
    }