Наследование: MonoBehaviour
Пример #1
0
        public Character()
        {
            _class = CharacterEnums.CharacterClass.Explorer;
            _race = CharacterEnums.CharacterRace.Human;
            _gender = CharacterEnums.Genders.Female;
            _skinColor = CharacterEnums.SkinColors.Fair;
            _skinType = CharacterEnums.SkinType.Flesh;
            _hairColor = CharacterEnums.HairColors.Black;
            _eyeColor = CharacterEnums.EyeColors.Brown;
            _build = CharacterEnums.BodyBuild.Medium;

            _koCount = new Tuple<int, DateTime>(0, DateTime.Now);
            _actionState = CharacterActionState.None;
            _stanceState = CharacterStanceState.Standing;

            _primaryLanguage = CharacterEnums.Languages.Common;
            KnownLanguages = new HashSet<Languages>();
            KnownLanguages.Add(_primaryLanguage);

            FirstName = "";
            LastName = "";
            Description = "";
            Age = 17;   //Do we want an age? And are we going to advance it every in game year?  We'll need a birthdate for this.
            Weight = 180; //pounds or kilos?
            Height = 70;  //inches or centimeters?
            Location = "A1";
            InCombat = false;
            LastCombatTime = DateTime.MinValue.ToUniversalTime();
            IsNPC = false;
            Leveled = false;
            MainHand = "WIELD_RIGHT";
            NextLevelExperience = 300;
            Level = 1;
            Experience = 0;
            PointsToSpend = 0;

            Inventory = new Inventory();
            Equipment = new Equipment();
            Bonuses = new StatBonuses();

            Inventory.playerID = this.ID;
            Equipment.playerID = this.ID;

            Attributes = new Dictionary<string, Attribute>();

            Attributes.Add("Hitpoints", new Attribute(150, "Hitpoints", 150, 0.1, 1));
            Attributes.Add("Dexterity", new Attribute(10, "Dexterity", 5, 0, 1));
            Attributes.Add("Strength", new Attribute(10, "Strength", 5, 0, 1));
            Attributes.Add("Intelligence", new Attribute(10, "Intelligence", 5, 0, 1));
            Attributes.Add("Endurance", new Attribute(10, "Endurance", 5, 0, 1));
            Attributes.Add("Charisma", new Attribute(10, "Charisma", 5, 0, 1));

            SubAttributes = new Dictionary<string, double>();

            SubAttributes.Add("Agility", 1);
            SubAttributes.Add("Toughness", 1);
            SubAttributes.Add("Cunning", 1);
            SubAttributes.Add("Wisdom", 1);
            SubAttributes.Add("Leadership", 1);
        }
Пример #2
0
 private static string getLootRankClassAndArmour(CharacterClass className)
 {
     switch (className)
     {
         case CharacterClass.DeathKnight :
             return "Cla=2048&Art=1&";
         case CharacterClass.Druid :
             return "Cla=1024&Art=4&";
         case CharacterClass.Hunter :
             return "Cla=4&Art=2&";
         case CharacterClass.Mage :
             return "Cla=128&Art=8&";
         case CharacterClass.Paladin :
             return "Cla=2&Art=1&";
         case CharacterClass.Priest :
             return "Cla=16&Art=8&";
         case CharacterClass.Rogue :
             return "Cla=8&Art=4&";
         case CharacterClass.Shaman :
             return "Cla=64&Art=2&";
         case CharacterClass.Warlock :
             return "Cla=256&Art=8&";
         case CharacterClass.Warrior :
             return "Cla=1&Art=1&";
     }
     return string.Empty;
 }
 // Use this for initialization
 void Start()
 {
     text = ui.GetComponent<Text> ();
     mControl = GetComponent<MovementController> ();
     charClass = GetComponent<CharacterClass> ();
     netview = mControl.netView;
 }
        void OnCreateCharacter(string charName, CharacterClass charClass)
        {
            _uiControl.ShowError(null);

            var character = new Character
            {
                Name = charName, Class = charClass
            };

            if (App.MainController.PersonSessionId == null)
                throw new Exception("MainController.PersonSessionId == null");

            DI.Get<ICharactersService>().Create(character,
                App.MainController.PersonSessionId.Value,
                characterId =>
                {
                    _uiControl.Hide();
                    character.Id = characterId;
                    if (CharacterCreated != null)
                        CharacterCreated(character);
                },
                error =>
                {
                    while (error.InnerException != null)
                        error = error.InnerException;
                    _uiControl.ShowError(error.Message);
                });
        }
Пример #5
0
 public void setParent(GameObject parent, int abilityNum, float time)
 {
     parentObj = parent.GetComponent<CharacterClass>();
     this.abilityNum = abilityNum;
     this.time = time;
     transform.SetParent(parent.transform, false);
 }
    public void PossessPlayer(GameObject player)
    {
        if (state == CameraState.FREE_FLOW)
        {
            if (player.CompareTag("Salesman"))
            {
                character = CharacterClass.SALESMAN;
            }
            else if (player.CompareTag("Shopper"))
            {
                character = CharacterClass.SHOPPER;
            }
            else if (player.CompareTag("Guard"))
            {
                character = CharacterClass.GUARD;
            }
            else if (player.CompareTag("Thief"))
            {
                character = CharacterClass.THIEF;
            }
            else return;

            PossessionScript ps = player.GetComponent<PossessionScript>();
            ps.Possess();

            possessedCharacter = player;
            attachedRotation = player.transform.rotation;
            attachedLocation = player.transform.position + attachedRotation * new Vector3(0, 1.85f, -2);
            freeFlyLocation = transform.position;
            freeFlyRotation = transform.rotation;

            state = CameraState.ATTACHING;
            tick = 0;
        }
    }
Пример #7
0
 /// <summary>
 /// Constructor with 3 params
 /// ID, voc and info
 /// </summary>
 /// <param name="id"></param>
 /// <param name="voc"></param>
 /// <param name="info"></param>
 public HotkeySet(int id, CharacterClass voc, string info)
 {
     // Sets the field values to the ones from the params
     m_id = id;
     m_voc = voc;
     m_info = info;
 }
        public ClassDescriptionControl(CharacterClass characterClass)
            : this()
        {
            _bkImage.Source = GetImage(characterClass);

            switch (characterClass)
            {
                case CharacterClass.Controller:
                    _descrTextBlock.Text = Client.Resources.Classes.Class_Controller_Description;
                    break;
                case CharacterClass.Healer:
                    _descrTextBlock.Text = Client.Resources.Classes.Class_Healer_Description;
                    break;
                case CharacterClass.MeleeDamager:
                    _descrTextBlock.Text = Client.Resources.Classes.Class_MeleeDamager_Description;
                    break;
                case CharacterClass.RangeDamager:
                    _descrTextBlock.Text = Client.Resources.Classes.Class_RangeDamager_Description;
                    break;
                case CharacterClass.Tank:
                    _descrTextBlock.Text = Client.Resources.Classes.Class_Tank_Description;
                    break;
                default:
                    throw new NotImplementedException();
            }

            _titleTextBlock.Text = (string)new ClassConverter().Convert(characterClass, typeof(string), null, CultureInfo.CurrentUICulture);
        }
Пример #9
0
 public void init(CharacterClass parent, GameObject target, Projectile projectile, int abilityNum, float angularVelocity)
 {
     this.target = target;
     this.projectile = projectile;
     this.parent = parent;
     this.abilityNum = abilityNum;
     this.angularVelocity = Mathf.PI * angularVelocity / 180;
 }
Пример #10
0
 public CharacterComponent(int entityId, Body body, Body feet, RevoluteJoint feetJoint, CharacterClass characterClass)
 {
     _entityId = entityId;
     _body = body;
     _feet = feet;
     _feetJoint = feetJoint;
     _characterClass = characterClass;
 }
 public bool matchCondition(CharacterClass _Player)
 {
     if(Vector3.Dot(_Player.moveDirection, facingDirection) > 0 &&
         _Player.currentState.Equals("walk")){
         return true;
     }
     return false;
 }
Пример #12
0
 public TransitionEnterCondition matchEnterCondition(CharacterClass _Player)
 {
     foreach(TransitionEnterCondition ec in enterConditions){
         if(ec.matchCondition(_Player)){
             return ec;
         }
     }
     return null;
 }
Пример #13
0
        public PlayerData(CharacterClass characterClass, string name)
        {
            _rand = new Random();
              _dpsStats = new List<DpsStats>();
              _lastGameTime = new TimeSpan();
              CharacterClass = characterClass;
              Name = name;

              InitNewPlayer();
        }
 public CharacterSheet(string constructorName, CharacterRace constructorRace, CharacterClass constructorClass, Alignment constructorAlignment)
 {
     charName = constructorName;
     charRace = constructorRace;
     charClass = constructorClass;
     charAlign = constructorAlignment;
     hitDie = charClass.hitDie;
     darkVision = charRace.hasDarkVision;
     charLevel = 1;
 }
Пример #15
0
        public ActionResult Roll( CharacterClass cls)
        {
            ViewBag.Class = cls;

            Character character = characterFactory.CreateCharacter(Guid.NewGuid(),"Hardy", cls);

            HttpContext.Session["Character"] = character;

            return View(character);
        }
Пример #16
0
        private void ValidateCharacter(string name, CharacterFaction characterFaction, CharacterRace characterRace, CharacterClass characterClass)
        {
            if(String.IsNullOrEmpty(name))
            {
                throw new Exception("Character must have a name");
            }

            #region Faction Validation
            
            if(characterFaction == CharacterFaction.Horde)
            {
                if(characterRace != CharacterRace.Orc &&
                   characterRace != CharacterRace.Tauren &&
                   characterRace != CharacterRace.BloodElf)
                {
                    throw new Exception("Only Orcs, Taurens, and Blood Elfs can fight for the Horde");
                }
            }
            else
            {
                if (characterRace != CharacterRace.Human &&
                   characterRace != CharacterRace.Gnome &&
                   characterRace != CharacterRace.Worgen)
                {
                    throw new Exception("Only Humans, Gnomes, and Worgen can fight for the Alliance");
                }
            }

            #endregion

            #region Race Validation
            
            if(characterClass == CharacterClass.Druid)
            {
                if(characterRace != CharacterRace.Tauren &&
                   characterRace != CharacterRace.Worgen)
                {
                    throw new Exception("This race cannot be a Druid");
                }
            }

            if(characterRace == CharacterRace.BloodElf && characterClass == CharacterClass.Warrior)
            {
                throw new Exception("Blood Elfs cannot be Warriors");
            }

            #endregion
        }
Пример #17
0
 public Character CreateCharacter(Guid characterId, string characterName, CharacterClass characterClass)
 {
     switch (characterClass)
     {
         case CharacterClass.Fighter:
             return new Fighter(characterId,characterName);
         case CharacterClass.MagicUser:
             return new MagicUser(characterId, characterName);
         case CharacterClass.Thief:
             return new Thief(characterId, characterName);
         case CharacterClass.Cleric:
             return new Cleric(characterId, characterName);
         default:
             throw new Exception("Not a valid Character Class.");
     }
 }
Пример #18
0
 private void InitilizeClasses()
 {
     if (playerPrefabs != null && playerPrefabs.Length > 0) {
         Character character = null;
         for (int i = 0; i < playerPrefabs.Length; i++) {
             if (i == 0) {
                 character = playerPrefabs[i].GetComponent<Character> ();
                 CharacterClass cClass = new CharacterClass ();
                 cClass.name = Classes.KNIGHT;
                 cClass.speed = 5;
                 cClass.maxMovement = 10f;
                 cClass.isDoubleJump = true;
                 character.charClass = cClass;
             } else if (i == 1) {
                 character = playerPrefabs[i].GetComponent<Character> ();
                 CharacterClass cClass = new CharacterClass ();
                 cClass.name = Classes.MAGE;
                 cClass.speed = 5;
                 cClass.maxMovement = 10f;
                 cClass.isDoubleJump = true;
                 character.charClass = cClass;
             } else if (i == 2) {
                 character = playerPrefabs[i].GetComponent<Character> ();
                 CharacterClass cClass = new CharacterClass ();
                 cClass.name = Classes.THIEF;
                 cClass.speed = 5;
                 cClass.maxMovement = 10f;
                 cClass.isDoubleJump = true;
                 character.charClass = cClass;
             } else if (i == 3) {
                 character = playerPrefabs[i].GetComponent<Character> ();
                 CharacterClass cClass = new CharacterClass ();
                 cClass.name = Classes.ARCHER;
                 cClass.speed = 5;
                 cClass.maxMovement = 10f;
                 cClass.isDoubleJump = true;
                 character.charClass = cClass;
             }
             character.enabled = false;
             GameObject characterGO = GameObject.Instantiate (playerPrefabs[i]);
             Vector2 v2 = new Vector2 (i, 1f);
             characterGO.transform.position = v2;
         }
     }
 }
 public override void OnGUI()
 {
     if(!hidden)
     {
         int numClasses = System.Enum.GetValues(typeof(CharacterClass)).Length;
         //chosen character label
         GUI.Label(new Rect(screenRect.x, screenRect.y, screenRect.width, 20), "Character chosen: " + GetCharacterName(chosen));
         //character buttons
         for(int i=0; i<numClasses; i++)
         {
             Sprite sprite = GetCharacterSprite((CharacterClass)i);
             if(GUI.Button(new Rect(screenRect.x+i*screenRect.width/numClasses, screenRect.y+20, screenRect.width/numClasses, screenRect.height-20), sprite.texture))
             {
                 chosen = (CharacterClass)i;
             }
         }
     }
 }
Пример #20
0
    public void Awake()
    {
        checkScreenSize();

        totalTokens = GameObject.FindGameObjectsWithTag("Token").Length;
        message = "Press W/A/S/D to walk fwrd/left/bkwrd/right. Hold shift to run.\nMove the mouse to rotate the camera!";
        Player = GameObject.FindObjectOfType<CharacterClass>().GetComponent<CharacterClass>();
        message += Player.name;

        tokenStyle = gui.GetStyle("Token");
        messageStyle = gui.GetStyle("Message");

        //Health Bar
        healthBar = gui.GetStyle("HealthBar");
        healthBar.normal.background = new Texture2D(1, 1);
        healthBar.stretchHeight = true; healthBar.stretchWidth = true;
        Player.healthChange += ()=> setHealth();
        setHealth();
    }
 void checkAttack()
 {
     RaycastHit hit;
     Debug.Log ("Raycasting");
     Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward)*charClass.range, Color.yellow, 1f);
     if (Physics.Raycast (transform.position, transform.TransformDirection (Vector3.forward), out hit, charClass.range)) {
         if (hit.collider.CompareTag ("Player")) {
             otherCharClass = hit.collider.GetComponentInParent<CharacterClass> ();
             otherActionController = hit.collider.GetComponentInParent<ActionController>();
             netview.RPC("takeDamage", RPCMode.OthersBuffered, baseDamage); //TODO target
             Debug.Log ("Attack successful" + baseDamage + " " + otherCharClass.health +"/" + otherCharClass.mHealth);
         }
         else{
             Debug.Log ("Thats not a player..");
         }
     } else {
         Debug.Log("Nothing hit");
     }
 }
Пример #22
0
        public  Character(string name, CharacterFaction characterFaction, CharacterRace characterRace, CharacterClass characterClass)
        {
            ValidateCharacter(name, characterFaction, characterRace, characterClass);

            this.Id = Guid.NewGuid();
            this.Name = name;
            this.Faction = characterFaction;
            this.Race = characterRace;
            this.Class = characterClass;
            this.Active = true;
            
            if(characterClass == CharacterClass.DeathKnight)
            {
                this.Level = 55;
            }
            else
            {
                this.Level = 1;
            }
        }
        private static ImageSource GetImage(CharacterClass charClass)
        {
            IDictionary<CharacterClass, string> imgs = new Dictionary<CharacterClass, string>
            {
                { CharacterClass.MeleeDamager, "MeleeDD.png" },
                { CharacterClass.RangeDamager, "RangeDD.png" },
                { CharacterClass.Controller, "Controller.png" },
                { CharacterClass.Healer, "Healer.png" },
                { CharacterClass.Tank, "Tank.png" }
            };

            if (!imgs.ContainsKey(charClass))
                throw new NotImplementedException();

            var image = new BitmapImage();
            image.BeginInit();
            image.UriSource = new Uri("pack://application:,,,/Parallel.Client.Resources;Component/Images/Classes/" + imgs[charClass]);
            image.EndInit();
            return image;
        }
 public Sprite GetCharacterSprite(CharacterClass characterClass)
 {
     switch(characterClass)
     {
     case CharacterClass.Warrior:
     {
         return warriorSprite;
     }
     case CharacterClass.Wizard:
     {
         return wizardSprite;
     }
     case CharacterClass.Thief:
     {
         return thiefSprite;
     }
     default:
     {
         Debug.Log("Sprite for character class " + characterClass + " not defined.");
         return defaultSprite;
     }
     }
 }
Пример #25
0
        public static BitmapImage TreeBackground(CharacterClass charClass, int Tree)
        {
            try {
#if !SILVERLIGHT
                string RootDir = AppDomain.CurrentDomain.BaseDirectory;
                Uri uriLocal = new Uri(string.Format(RootDir + "images\\{0}\\{1}", "backgrounds", charClass.ToString().ToLower() + ".jpg"), UriKind.Absolute);
                Uri uriWeb = new Uri(string.Format("http://static.wowhead.com/images/wow/talents/backgrounds/live/{0}_{1}.jpg", charClass.ToString().ToLower(), Tree + 1));
                // Ensure directory paths
                if (!Directory.Exists(RootDir + "images\\"                  )) { Directory.CreateDirectory(RootDir + "images\\"                  ); }
                if (!Directory.Exists(RootDir + "images\\" + "backgrounds\\")) { Directory.CreateDirectory(RootDir + "images\\" + "backgrounds\\"); }
                // TODO: Do a network test to see if there's no connectivity, if not don't try to pull the image from wowhead
                BitmapImage retVal;
                if (File.Exists(uriLocal.LocalPath)) {
                    retVal = NewBitmapImage(uriLocal);
                } else {
                    retVal = NewBitmapImage(uriWeb);
                    // Set the file up to save to the directory after it is downloaded
                    Image image = new Image();
                    BitmapImage theicon = new BitmapImage();
                    theicon.BeginInit();
                    theicon.CacheOption = BitmapCacheOption.OnLoad;
                    theicon.UriSource = uriWeb;
                    theicon.DecodePixelHeight = 554;
                    theicon.DecodePixelWidth = 204;
                    theicon.EndInit();
                    image.Source = theicon;
                    theicon.DownloadCompleted += new EventHandler(objImageBg_DownloadCompleted);
                }
                return retVal;
#else
                Uri uri = new Uri(string.Format("http://static.wowhead.com/images/wow/talents/backgrounds/live/{0}_{1}.jpg", charClass.ToString().ToLower(), Tree + 1));
                return NewBitmapImage(uri);
#endif
            } catch (Exception) {
                return null;
            }
        }
Пример #26
0
 public Character(string aName, string aDescription, CharacterRace aRace, CharacterClass aClass, int hp = 2) : base (aName, aDescription)
 {
     // Change default HP to be a factor of race and class rather than directly specified
     // at the very least, it should be a final, optional parameter that can override the default
     _maxHitPoints = _currentHitPoints = hp;
     CharacterRace characterRace = aRace;
     CharacterClass characterClass = aClass;
 }
Пример #27
0
    public LocalObject(string _uniqueName, Race _race, CharacterClass _cclass, Background _background, Origin _origin, int experience)
    {
        uniqueName = _uniqueName;
        race = _race;
        cclass = _cclass;
        background = _background;
        origin = _origin;

        xp = new Experience(experience, this);

        skills = new Skills(this);
        inventory = new Inventory(6, 1, "", true, null, this);

        hp = new HPComponent(this);
        movement = new Movement(this);
        defence = new Defence(this);
        attack = new Attack(this);
        abilities = new Abilities(this);
        fatigue = new Fatigue(this);
        eating = new Eating(this);
    }
Пример #28
0
 void GiveCharacterAbilities(Unit u, CharacterClass c)
 {
     switch (c)
     {
     case CharacterClass.Warrior: u.myAbilities[0] = new GuardianStrike(u, map, effectLibrary);
         u.myAbilities[1] = new Barge(u, map, effectLibrary);
         u.myAbilities[2] = new ShieldSlam(u, map, effectLibrary);
         u.myAbilities[3] = new CounterAttack(u, map, effectLibrary);
         break;
     case CharacterClass.Acolyte: u.myAbilities[0] = new WordOfHealing(u, map, effectLibrary);
         u.myAbilities[1] = new Smite(u, map, effectLibrary);
         u.myAbilities[2] = new DivineSacrifice(u, map, effectLibrary);
         u.myAbilities[3] = new Amplify(u, map, effectLibrary);
         break;
     case CharacterClass.Highwayman: u.myAbilities[0] = new Lacerate(u, map, effectLibrary);
         u.myAbilities[1] = new Flurry(u, map, effectLibrary);
         u.myAbilities[2] = new ShadowStep(u, map, effectLibrary);
         u.myAbilities[3] = new SmokeBomb(u, map, effectLibrary);
         break;
     case CharacterClass.Elementalist: u.myAbilities[0] = new ArcanePulse(u, map, effectLibrary);
         u.myAbilities[1] = new Fireball(u, map, effectLibrary);
         u.myAbilities[2] = new FlashFreeze(u, map, effectLibrary);
         u.myAbilities[3] = new ArcaneSpark(u, map, effectLibrary);
         break;
     case CharacterClass.Ranger: u.myAbilities[0] = new TripleShot(u, map, effectLibrary);
         u.myAbilities[1] = new CripplingShot(u, map, effectLibrary);
         u.myAbilities[2] = new ExploitWeakness(u, map, effectLibrary);
         u.myAbilities[3] = new CracklingArrow(u, map, effectLibrary);
         break;
     }
 }
Пример #29
0
    void Update()
    {
        homingTimer -= Time.deltaTime;
        if(homingTimer < 0)
            homingTarget = null;

        base.Update ();
    }
Пример #30
0
    void spawnUnit(int x, int y, CharacterClass c)
    {
        if (characterCount < MAXCHARACTERS) {

            //set its position in the world and spawn in
            Vector3 pos = map.TileCoordToWorldCoord (x, y);
            pos = new Vector3(pos.x, pos.y, -2);
            GameObject character = (GameObject)Instantiate (classes [(int)c], pos, Quaternion.identity);

            //set its starting values
            Unit u = character.GetComponent<Unit>();
            u.tileX = x;
            u.tileY = y;
            u.map = map;
            u.ID = everyUnit.Count;
            u.uManager = this;
            u.hp = u.maxHP;
            u.mana = u.maxMana;

            //add a shieldbar
            AddUnitUIElement (shieldBar, u);

            //add a manabar
            AddUnitUIElement (manaBar, u);
            AddUnitUIElement (manaText, u);

            //add a healthbar
            AddUnitUIElement (healthBar, u);
            AddUnitUIElement (hpText, u);

            //give the unit its spells TODO find a better way of doing this instead of hardcoding
            GiveCharacterAbilities(u, c);

            //make the map know where the unit is
            map.GetNode(x, y).myUnit = u;

            //add it to the manager lists
            playerUnitObjects [characterCount] = character; // list of players characters
            everyUnit.Add(character);						// list of every unit
            activeUnits.Add(character);						// list of currently active units

            //increase the character counter
            ++characterCount;
        }
    }
Пример #31
0
 public virtual void MonsterDied(Monster monster, CharacterClass character)
 {
     Console.WriteLine("Has not been overwriten");
 }