public override void Fire(PlayerCharacter character) { if (Ammo <= 0) { Reload(); } }
void Awake() { _playerSpawnPointPos = new Vector3(1078,252,1055); GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT); if(go == null){ Debug.LogWarning("Can not find player spawn point."); go = new GameObject(GameSettings.PLAYER_SPAWN_POINT); Debug.Log("Created player spawn point."); go.transform.position = _playerSpawnPointPos; } _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); zOffset = -2.5f; yOffset = 2.5f; xRotOffset = 22.5f; // mainCamera.transform.position = new Vector3(_pc.transform.position.x,_pc.transform.position.y +yOffset,_pc.transform.position.z +zOffset); // mainCamera.transform.Rotate(xRotOffset, 0, 0); //LoadCharacter(); }
public void Equip(PlayerCharacter PC) { try { if (PC.LeftHand != null) { if (PC.RightHand != null) { PC.Inventory.Add(this); } else { PC.RightHand = this; } } else { PC.LeftHand = this; } } catch (Exception e) { Console.Write(e.Message); } }
public override PlayerCharacter ApplyEffect(PlayerCharacter pc) { switch (AbilityScoreToModify) { case enumAbilityScore.Strength: pc.AbilityScore.Strength += Value; break; case enumAbilityScore.Dexterity: pc.AbilityScore.Dexterity += Value; break; case enumAbilityScore.Constitution: pc.AbilityScore.Constitution += Value; break; case enumAbilityScore.Intelligence: pc.AbilityScore.Intelligence += Value; break; case enumAbilityScore.Wisdom: pc.AbilityScore.Wisdom += Value; break; case enumAbilityScore.Charisma: pc.AbilityScore.Charisma += Value; break; default: break; } return pc; }
// Use this for initialization void Start() { _playerSpawnPointPos = new Vector3 (0.0f, 0.057f, -136.9f); GameObject go = GameObject.Find (GameSettings.PLAYER_SPAWN_POINT) as GameObject; if (go == null) { Debug.LogWarning ("Couldn't find Player Spawn Point. Did you forget to add it, mate?"); go = new GameObject (GameSettings.PLAYER_SPAWN_POINT); Debug.Log ("Created Player Spawn Point"); go.transform.position = _playerSpawnPointPos; Debug.Log ("Moved Player Spawn Point"); } _player = Instantiate (playerCharacter, go.transform.position, Quaternion.identity) as GameObject; _player.name = "Player"; _playerScript = _player.GetComponent<PlayerCharacter> (); // mainCamera.transform.position = new Vector3 (_player.transform.position.x, _player.transform.position.y + yOffset, _player.transform.position.z + zOffset); // mainCamera.transform.Rotate (xRotOffset, 0, 0); LoadCharacter (); _isLoadComplete = true; }
public void Start() { player = GameMainReferences.Instance.PlayerCharacter; _spell = player.GetSpellAtIndex(_spellIndex); ChangeSpellIcon(_spell); player.OnSpellChanged += OnSpellChanged; }
public static void checkSpecialCollisions(PlayerCharacter pc, EBossS1 boss, Rectangle fieldBounds) { // This is a pretty hackey way to do this and I'll re-write this system in a bit but I'm in a hurry now because it's 2AM on Monday. foreach (ExplodingBullet b in boss.getExplodingBullets()) { Rectangle bulletRect = b.getRect(); // If the bullet is exploded, check the shards. if (b.isExploded()) { foreach (Bullet bullet in b.getShards()) { Rectangle shardRect = bullet.getRect(); if (shardRect.Intersects(pc.getRect()) && bullet.inPlay && pc.alive && !pc.respawning) { pc.Hit(); bullet.inPlay = false; } } } // Otherwise check the main bullet and not the shards. else { if (bulletRect.Intersects(pc.getRect()) && b.inPlay && pc.alive && !pc.respawning) { pc.Hit(); b.inPlay = false; } } } }
private void handleHarvest(PlayerCharacter pc, IncommingMessage msg) { if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull) { HarvestIncommingMessage msgHarvest = (HarvestIncommingMessage)msg; switch (pc.LocationCurrentMap.Name) { case ("calindor_startmap.elm"): { switch (msgHarvest.TargetObjectID) { case(138): case (139): { ActionDescriptor actDesc = new HarvestActionDescriptor(2000, 1000); actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 3, 15)); HarvestableResourceDescriptor rscDef = new HarvestableResourceDescriptor( ItemDefinitionCache.GetItemDefinitionByID(2), actDesc , 1); pc.HarvestStart(rscDef); break; } case (274): { ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000); actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 10, 25)); HarvestableResourceDescriptor rscDef = new HarvestableResourceDescriptor( ItemDefinitionCache.GetItemDefinitionByID(3), actDesc, 1); pc.HarvestStart(rscDef); break; } case (194): { ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000); actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 10, 25)); HarvestableResourceDescriptor rscDef = new HarvestableResourceDescriptor( ItemDefinitionCache.GetItemDefinitionByID(3), actDesc, 2); pc.HarvestStart(rscDef); break; } case (276): { ActionDescriptor actDesc = new HarvestActionDescriptor(3000, 1000); actDesc.AddExperienceDescriptor(new ExperienceDescriptor(EntitySkillType.HarvestingPlants, 8, 20)); HarvestableResourceDescriptor rscDef = new HarvestableResourceDescriptor( ItemDefinitionCache.GetItemDefinitionByID(7), actDesc, 1); pc.HarvestStart(rscDef); break; } } break; } } } }
public void ShouldNoHaveNickName() { PlayerCharacter test = new PlayerCharacter(); var actualResult = test.NickName; Assert.Null(actualResult); }
// Use this for initialization void Start() { _playerSpawnPointPos = new Vector3(3,-20,0); //the default position for our player spawn point GameObject go = GameObject.Find(GameSettings.PLAYER_POSITION); if(go == null) { go = new GameObject(GameSettings.PLAYER_POSITION); go.transform.position = GameSettings.LoadPlayerPosition(); //go.transform.position = _playerSpawnPointPos; } _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); zOffset = -2.5f; yOffset = 2.5f; xRotOffset = 22.5f; mainCamera.transform.position = new Vector3(_pc.transform.position.x, _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset); mainCamera.transform.Rotate(xRotOffset, 0, 0); LoadCharacter(); }
public override void OnStart() { base.OnStart(); _slowStat = new EntityStats(-2f, 0f, ElementalStats.Zero, ElementalStats.Zero, ElementalStats.Zero, ElementalStats.Zero); _slowTimer = new Timer(0.25f); _lastSelectTime = Time.time; _playerCharacter = gameObject.GetComponent<PlayerCharacter>(); _costumeBaseSpellReference = GetComponent<PlayerCostume>().CostumeBaseSpell; GameMainController.Instance.OnCinematicChange += OnCinematicChange; // Unlock all saved elements int eIndex = 0; if (GameDataManager.GameData != null) { foreach (Element e in GameDataManager.GameData.PlayerData.UnlockedElements) { SetSelectedElement(eIndex, e); eIndex++; } } else { // Load debug elements SetSelectedElement(0, LevelMetaInfo.Instance.FirstDebugElement); SetSelectedElement(1, LevelMetaInfo.Instance.SecondDebugElement); SetSelectedElement(2, LevelMetaInfo.Instance.ThirdDebugElement); SetSelectedElement(3, LevelMetaInfo.Instance.FourthDebugElement); } var p = StatusTextPool.Instance.GetObjectFromPool((e) => { e.TextColor = Color.green; e.StatusText = "This is test"; e.Target = Entity.GUIHealthPoint; }); }
private Vector3 _playerSpawnPointPos; // this is the position of the player's spawn point // Use this for initialization void Start () { _playerSpawnPointPos = new Vector3(96, 9, 47); // position of spawn point GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT); if(go == null ){ Debug.LogWarning("Cant find Player's Spawn"); go = new GameObject(GameSettings.PLAYER_SPAWN_POINT); Debug.Log(" Created Spawn Point"); go.transform.position = _playerSpawnPointPos; Debug.Log("Moved the Spawn Point"); } _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity)as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); zOffset = -0.58f; yOffset = 0.3f; xOffset = -0.03f; xRotOffset = 21.45f; yRotOffset = 0.94f; zRotOffset = 0.38f; mainCamara.transform.position = new Vector3(_pc.transform.position.x + xOffset, _pc.transform.position.y +yOffset,_pc.transform.position.z + zOffset); mainCamara.transform.Rotate(xRotOffset, yRotOffset, zRotOffset); LoadCharacter(); }
// Use this for initialization void Start() { GameObject go = GameObject.Find (GameSettings.PLAYER_SPAWN_POINT); _playerSpawnPosition = new Vector3 (570, 6, 630); if( go == null ) { go = new GameObject( GameSettings.PLAYER_SPAWN_POINT ); go.transform.position = _playerSpawnPosition; } _pc = Instantiate( playerCharacter, go.transform.position, Quaternion.identity ) as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); zOffset = -2.5f; yOffset = 2.5f; xRotOffset = 15f; mainCamera.transform.position = new Vector3(_pc.transform.position.x , _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset); mainCamera.transform.Rotate(xRotOffset, 0, 0); _mainCameraScript = mainCamera.GetComponent<CameraMove>(); _mainCameraScript.target = _pc.transform; LoadCharacter(); }
// Use this for initialization void Start() { GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT); // player spawn point gameobject _playerSpawnPointPos = new Vector3(1285, 5, 1666); // default position for player spawn point if (go == null) // check if go isn't null { Debug.LogWarning("Cannot find player spawn point"); go = new GameObject(GameSettings.PLAYER_SPAWN_POINT); go.transform.position = _playerSpawnPointPos; Debug.Log("Created player spawn point"); } _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); // Get camera to be behind player char zOffset = -2.5f; yOffset = 2.5f; xRotOffset = 22.5f; mainCamera.transform.position = new Vector3(_pc.transform.position.x, _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset); mainCamera.transform.Rotate(xRotOffset, 0, 0); LoadCharacter(); }
public void ReferenceEqualityDemo() { var player1 = new PlayerCharacter(); var player2 = new PlayerCharacter(); var somePlayer = player1; Assert.That(somePlayer,Is.SameAs(player1)); }
public void ShouldGainHealthAfterSleeping() { var playerCharacter = new PlayerCharacter(); playerCharacter.Sleep(); playerCharacter.HitPoints.ShouldBeGreaterThan(100); playerCharacter.HitPoints.ShouldBeLessThanOrEqualTo(200); }
// Use this for initialization void Start() { _playerSpawnPointPos = new Vector3(0,5,0); //The default position for our player spawn point GameObject go = GameObject.Find(GameSettings.PLAYER_SPAWN_POINT); if(go == null) { // Debug.LogWarning("Can not find Player Spawn Point"); go = new GameObject(GameSettings.PLAYER_SPAWN_POINT); // Debug.Log("Created Player Spawn Point"); go.transform.position = _playerSpawnPointPos; // Debug.Log("Moved Player Spawn Point"); } _pc = Instantiate(playerCharacter, go.transform.position, Quaternion.identity) as GameObject; _pc.name = "pc"; _pcScript = _pc.GetComponent<PlayerCharacter>(); zOffset = -2.5f; yOffset = 2.5f; xRotOffset = 34.5f; mainCamera.transform.position = new Vector3(_pc.transform.position.x, _pc.transform.position.y + yOffset, _pc.transform.position.z + zOffset); mainCamera.transform.Rotate(xRotOffset, 0 , 0); LoadCharacter(); }
private void Start() { _player = GameMainReferences.Instance.PlayerController; _playerCharacter = GameMainReferences.Instance.PlayerCharacter; _playerCharacter.OnLevelUp += _playerCharacter_OnLevelUp; GameMainController.Instance.OnCinematicChange += OnCinematicChange; }
static void Main() { var playerOne = new PlayerCharacter(new DiamondSkinDefense()) { Name = "Jeremy" }; var playerTwo = new PlayerCharacter(new IronBonesDefence()){ Name = "Jac", DateOfBirth = DateTime.Now, DaysSinceLastLogin = 5, Health = 100, IsNoob = true }; var playerThree = new PlayerCharacter(SpecialDefense.Null) { Name = "John" }; playerOne.Hit(10); playerTwo.Hit(10); playerThree.Hit(10); PlayerDisplayer.Write(playerOne); PlayerDisplayer.Write(playerTwo); PlayerDisplayer.Write(playerThree); }
private void handlePM(PlayerCharacter pc, IncommingMessage msg) { if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull) { SendPMIncommingMessage msgSendPM = (SendPMIncommingMessage)msg; PlayerCharacter sendToPlayer = getPlayerByName(msgSendPM.RecipientName); if (sendToPlayer == null) { RawTextOutgoingMessage msgToSender = (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT); msgToSender.Color = PredefinedColor.Blue1; msgToSender.Channel = PredefinedChannel.CHAT_LOCAL; msgToSender.Text = "The one you seek is not here..."; pc.PutMessageIntoMyQueue(msgToSender); } else { RawTextOutgoingMessage msgToSender = (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT); msgToSender.Color = PredefinedColor.Purple1; msgToSender.Channel = PredefinedChannel.CHAT_PERSONAL; msgToSender.Text = "[PM to " + sendToPlayer.Name + ": " + msgSendPM.Text + "]"; pc.PutMessageIntoMyQueue(msgToSender); RawTextOutgoingMessage msgToRecipient = (RawTextOutgoingMessage)OutgoingMessagesFactory.Create(OutgoingMessageType.RAW_TEXT); msgToRecipient.Color = PredefinedColor.Purple1; msgToRecipient.Channel = PredefinedChannel.CHAT_PERSONAL; msgToRecipient.Text = "[PM from " + pc.Name + ": " + msgSendPM.Text + "]"; sendToPlayer.PutMessageIntoMyQueue(msgToRecipient); } } }
public void ShouldHaveDeafultName2() { PlayerCharacter test = new PlayerCharacter(); var actualResult = test.Name; Assert.True(!string.IsNullOrEmpty(actualResult)); }
private void handleTurnRight(PlayerCharacter pc, IncommingMessage msg) { if (pc.LoginState == PlayerCharacterLoginState.LoginSuccesfull) { pc.LocationTurnRight(); } }
public PlayerState( PlayerStateMachine stateMachine, PlayerCharacter character, PlayerController controller ) { this.stateMachine = stateMachine; this.controller = controller; this.character = character; Actions = character.Input.Actions; }
public void JustTestingOutDoublesWithShouldlyAgain() { var playerCharacter = new PlayerCharacter(); // The additional parameter is a floating point tolerance // This uses the configured tolerance assigned in the constructor playerCharacter.AddDoubles(1.1, 2.2).ShouldNotBe(0); }
void Awake() { healthSlider = GameObject.Find ("Health").GetComponent<Slider> (); staminaSlider = GameObject.Find ("Stamina").GetComponent<Slider> (); hungerSlider = GameObject.Find ("Hunger").GetComponent<Slider> (); thirstSlider = GameObject.Find ("Thirst").GetComponent<Slider> (); playerCharacter = GameObject.Find ("Player").GetComponent<PlayerCharacter>(); }
public void ShouldIncreaseHealthAfterSleeping() { var sut = new PlayerCharacter {Health = 100}; sut.Sleep(); Assert.That(sut.Health, Is.GreaterThan(100)); }
public void MagicDamageTakesAPercentageOfHitPoints() { var playerCharacter = new PlayerCharacter(); var currentHitPoints = playerCharacter.HitPoints; var percent = 10; var percentage = currentHitPoints * (percent / 100.0); playerCharacter.MagicDamage(percent).ShouldBe(currentHitPoints - percentage); }
public void PotionsShouldAddHitPoints() { var playerCharacter = new PlayerCharacter(); var currentHitPoints = playerCharacter.HitPoints; const int potion = 5; playerCharacter.TakePotion(potion).ShouldBe(currentHitPoints + potion); playerCharacter.HitPoints.ShouldBe(currentHitPoints + potion); }
public void ShouldIncreaseHealthInExpectedRangeAfterSleeping() { var sut = new PlayerCharacter { Health = 100 }; sut.Sleep(); Assert.That(sut.Health, Is.InRange(101, 200)); }
// Use this for initialization #region setup and unequip public override void Initialise(PlayerCharacter manager, int index) { base.Initialise(manager, index); currentAmmoCount = maxAmmoCount; AddPrefabToPool(projectilePrefab); AddPrefabToPool(hitDecal); fireSpeedTimer = 0; }
public void ShouldHaveAtLeastOneKindOfSword() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Has.Some.ContainsSubstring("Sword")); }
static void Main(string[] args) { bool keepGoing = true; bool repeat = true; bool choose = true; bool again = true; PlayerCharacter player = new PlayerCharacter(); Fighter mal = new Fighter("Captain Reynolds- Big Bad Veterin - A man of honor in a din of thieves", 12, true, 12, "Capt. Malcom Reynolds", 3, 1, 3, 1, 6); Fighter zoe = new Fighter("First Mate", 12, true, 12, "Zo\u00eb", 3, 2, 4, 2, 6); Console.Title = "The 'Verse"; Console.WriteLine("Press escape to exit.\n\n\n\n" + "You're peacefully floating through the 'verse when...\n\n"); Thread.Sleep(2000); //TODONE Keep score do { //Choose Character Loop do { Console.WriteLine("\tChoose your character: \n" + "\t\tM)al\n" + "\t\tZ)o\u00eb\n" + "\t\tE)xit"); //"\t\tW)ash\n" + //"\t\tI)nara\n" + //"\t\tJ)ayne\n" + //"\t\tK)aylee\n" + //"\t\tS)imon\n" + //"\t\tR)iver\n" + //"\t\tB)ook\n"); ConsoleKey chooseCharacter = Console.ReadKey(true).Key; switch (chooseCharacter) { case ConsoleKey.Escape: case ConsoleKey.E: case ConsoleKey.X: Console.WriteLine("As I understand it, it's a bit cold outside. Better put on a suit."); //Console.WriteLine("\n\n\t\t\t\t\tPress enter to exit..."); //Console.ReadLine();//TODONE Remove and replace with Sleep() repeat = false; choose = true; repeat = false; keepGoing = false; //Thread.Sleep(2500); break; case ConsoleKey.M: player = mal; Console.WriteLine("\n\n\tHello Captain.\n\n\t\t\t\t\tPress enter to continue..."); //Console.ReadLine(); Thread.Sleep(2500); choose = true; break; case ConsoleKey.Z: player = zoe; Console.WriteLine("\n\n\tHello Zo\u00eb\n\n\t\t\t\t\tPress enter to continue..."); //Console.ReadLine(); Thread.Sleep(2500); choose = true; break; //case ConsoleKey.W: // player = Wash; // Console.WriteLine("Hello Wash"); // break; //case ConsoleKey.I: // player = Inara; // Console.WriteLine("Welcome Inara"); // break; //case ConsoleKey.J: // player = Jayne; // Console.WriteLine("Hello Jayne"); // break; //case ConsoleKey.K: // player = Kaylee; // Console.WriteLine("Hi Kaylee"); // break; //case ConsoleKey.S: // player = Simon; // Console.WriteLine("Welcome Dr.Tam"); // break; //case ConsoleKey.R: // player = River; // Console.WriteLine("Hello River"); // break; //case ConsoleKey.B: // player = Sheppard Book; // Console.WriteLine("Welcome Sheppard"); // break; default: Console.WriteLine("I'm thinkin you're not burdoned with an overabundance of schooling...choose from the menu."); choose = false; player = mal; break; }//end Character switch } while (!choose); //if (repeat)//choose && //{ //Load Scenario and Combat do { //TODO Seperate loop based on land vs space scenario Console.Clear();//TODONE Fix the clearing issue so you can read the output - Add a "Press Ent to continue" Console.WriteLine(GetScenario()); Console.WriteLine($"{player.Name} Hit Points: {player.HitPoints}\t{croanie.Name} Hit Points: {croanie.HitPoints}\t{boss.Name} Hit Points: {boss.HitPoints}"); Console.WriteLine($"Score: {score}"); //Combat or Run do { Console.WriteLine($"\n\n\tWhat do you do, {player.Name}?\n" + //TODONE Display chosen character name in place of Player name. // $"\t\t R)elease the Cry Baby\n" + $"\n\t\t I)t's time to fight!\n" + $"\t\t G)o for burn\n"); ConsoleKey playerChoice = Console.ReadKey(true).Key; switch (playerChoice) { case ConsoleKey.X: case ConsoleKey.E: case ConsoleKey.Escape: Console.WriteLine("As I understand it, it's a bit cold outside. Better put on a suit."); repeat = false; choose = true; keepGoing = false; again = false; break; //case ConsoleKey.R: //This is a distraction tactic to buy time //Console.WriteLine("Cry Baby Cry - Make your mother sigh"); //break; case ConsoleKey.I: //TODONE Combat Functionality Combat.Battle(player, croanie); if (croanie.HitPoints <= 0) { Console.WriteLine($"You killed {croanie.Name}"); score++; } Combat.Battle(player, boss); if (boss.HitPoints <= 0) { Console.WriteLine($"You killed {boss.Name}"); score++; } if (boss.HitPoints <= 0 && croanie.HitPoints <= 0) { Console.WriteLine("\n\n\tYou're able to keep flying...\n"); again = false; } Console.WriteLine($"\n\n\t{player.Name} Hit Points: {player.HitPoints}\t{croanie.Name} Hit Points: {croanie.HitPoints}\t{boss.Name} Hit Points: {boss.HitPoints}"); Console.WriteLine($"\n\n\tScore: {score}"); Console.WriteLine("\n\n\t\t\t\t\tPress enter to continue..."); Console.ReadLine(); break; case ConsoleKey.G: //TODO Run away Functionality break; default: Console.WriteLine("I'm thinkin you're not burdoned with an overabundance of schooling...choose from the menu."); break; }//end Action switch } while (again); } while (keepGoing && repeat && choose); //} } while (keepGoing && repeat && choose); }//end Main
public void BeInexperiencedWhenNew() { var sut = new PlayerCharacter(); Assert.IsTrue(sut.IsNoob); }
public void ShouldNotHaveMoreThanOneTypeOfAGivenWeapon() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Is.Unique); }
public static void RemoveCoins(this Player player, int amount) { int[] coinType = { 71, 72, 73, 74 }; //splitting the cost into individual coin types int[] cost = SeparateCoinTypes(amount); int[] coins = new int[4]; for (int i = 0; i < coins.Length; i++) { coins[i] = 0; } coins = SeparateCoinTypes(player.Wealth()); PlayerCharacter character = player.GetModPlayer <PlayerCharacter>(); //foreach (Item[] inventory in character.inventories) // foreach (Item i in inventory) // coins = SumCoins(coins, CountCoins(i)); //foreach (Item i in player.bank.item) // coins = SumCoins(coins, CountCoins(i)); //foreach (Item i in player.bank2.item) // coins = SumCoins(coins, CountCoins(i)); //foreach (Item i in player.bank3.item) // coins = SumCoins(coins, CountCoins(i)); for (int i = 0; i < 4; i++) { if (coins[i] >= cost[i]) { foreach (Item item in player.inventory) { item.stack = RemoveCoins(item, coinType[i], ref cost[i]); } for (int j = 0; j < character.Inventories.Length; j += 1) { if (character.ActiveInvPage != j) { foreach (Item item in character.Inventories[j]) { item.stack = RemoveCoins(item, coinType[i], ref cost[i]); } } } foreach (Item item in player.bank.item) { item.stack = RemoveCoins(item, coinType[i], ref cost[i]); } foreach (Item item in player.bank2.item) { item.stack = RemoveCoins(item, coinType[i], ref cost[i]); } foreach (Item item in player.bank3.item) { item.stack = RemoveCoins(item, coinType[i], ref cost[i]); } } else { cost[i + 1] += 1; cost[i] -= 100; Item.NewItem((int)player.position.X, (int)player.position.Y, 0, 0, coinType[i], -cost[i], true, 0, true); } } }
public void CanMakeNewCharacter() { PlayerCharacter character = new PlayerCharacter("Kresh", 9, "Jason"); }
protected override void Initialized() { Character = new PlayerCharacter(); Game.Zone.AddAgent(Character); }
public void BuildEntity(Entity entity, params object[] args) { _characterType = args.Length > 0 ? (CharacterType)args[0] : CharacterType.X; LoadPlayerDataFile(); entity.AddComponent(BuildSprite()); PlayerCharacter character = _componentFactory.Create <PlayerCharacter>(); character.MaxDashLength = _playerData.MaxDashLength; character.MaxJumpLength = _playerData.MaxJumpLength; character.MoveSpeed = _playerData.MoveSpeed; character.DashSpeed = _playerData.DashSpeed; character.JumpSpeed = _playerData.JumpSpeed; character.CharacterType = _characterType; character.MaxNumberOfJumps = _playerData.MaxNumberOfJumps; entity.AddComponent(character); Health health = _componentFactory.Create <Health>(); health.MaxHitPoints = 16; health.CurrentHitPoints = 8; entity.AddComponent(health); Position position = _componentFactory.Create <Position>(); position.Facing = Direction.Right; position.X = (int?)args[1] ?? 0; position.Y = (int?)args[2] ?? 0; entity.AddComponent(position); entity.AddComponent(_componentFactory.Create <LocalData>()); entity.AddComponent(_componentFactory.Create <Velocity>()); entity.AddComponent(_componentFactory.Create <Renderable>()); entity.AddComponent(BuildCollisionBox()); Nameable nameable = _componentFactory.Create <Nameable>(); nameable.Name = _playerData.Name; entity.AddComponent(nameable); Heartbeat heartbeat = _componentFactory.Create <Heartbeat>(); heartbeat.Interval = _playerData.HeartbeatInterval; entity.AddComponent(heartbeat); Script script = _componentFactory.Create <Script>(); script.FilePath = _playerData.Script; entity.AddComponent(script); PlayerStateMap stateMap = _componentFactory.Create <PlayerStateMap>(); stateMap.States.Add(PlayerState.Idle, _playerStateFactory.Create <IdleState>()); stateMap.States.Add(PlayerState.Move, _playerStateFactory.Create <MoveState>()); stateMap.States.Add(PlayerState.Dash, _playerStateFactory.Create <DashState>()); stateMap.States.Add(PlayerState.Jump, _playerStateFactory.Create <JumpState>()); stateMap.States.Add(PlayerState.Fall, _playerStateFactory.Create <FallState>()); stateMap.States.Add(PlayerState.Land, _playerStateFactory.Create <LandState>()); stateMap.CurrentState = PlayerState.Idle; entity.AddComponent(stateMap); Gravity gravity = _componentFactory.Create <Gravity>(); gravity.Speed = _playerData.GravitySpeed; entity.AddComponent(gravity); PlayerStats stats = _componentFactory.Create <PlayerStats>(); stats.Lives = 2; entity.AddComponent(stats); EntitySystem.BlackBoard.SetEntry("Player", entity); }
public void HasNoEmptyOrNullDefaultWeapons() { var sut = new PlayerCharacter(); Assert.All(sut.Weapons, weapon => Assert.False(string.IsNullOrWhiteSpace(weapon))); }
public void ShouldHaveEmptyDefaultWeapons() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Is.All.Not.Empty); }
public void ShouldNotHaveAStaffOfWonder() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Has.None.EqualTo("Staff Of Wonder")); }
public bool Run(params object[] args) { NWPlaceable resource = NWPlaceable.Wrap(Object.OBJECT_SELF); NWPlayer oPC = NWPlayer.Wrap(_.GetLastDamager(resource.Object)); if (oPC.GetLocalInt("NOT_USING_CORRECT_WEAPON") == 1) { oPC.DeleteLocalInt("NOT_USING_CORRECT_WEAPON"); return(true); } PlayerCharacter pcEntity = _db.PlayerCharacters.Single(x => x.PlayerID == oPC.GlobalID); NWItem oWeapon = NWItem.Wrap(_.GetLastWeaponUsed(oPC.Object)); Location location = oPC.Location; string resourceItemResref = resource.GetLocalString("RESOURCE_RESREF"); int activityID = resource.GetLocalInt("RESOURCE_ACTIVITY"); string resourceName = resource.GetLocalString("RESOURCE_NAME"); int resourceCount = resource.GetLocalInt("RESOURCE_COUNT"); int difficultyRating = resource.GetLocalInt("RESOURCE_DIFFICULTY_RATING"); int weaponChanceBonus; SkillType skillType; int perkChanceBonus; int secondResourceChance; int durabilityChanceReduction = 0; int hasteChance; int lucky = _perk.GetPCPerkLevel(oPC, PerkType.Lucky); bool hasBaggerPerk; if (activityID == 1) // 1 = Logging { weaponChanceBonus = oWeapon.LoggingBonus; if (weaponChanceBonus > 0) { weaponChanceBonus += _perk.GetPCPerkLevel(oPC, PerkType.LoggingAxeExpert) * 5; durabilityChanceReduction = _perk.GetPCPerkLevel(oPC, PerkType.LoggingAxeExpert) * 10 + lucky; } skillType = SkillType.Logging; perkChanceBonus = _perk.GetPCPerkLevel(oPC, PerkType.Lumberjack) * 5 + lucky; secondResourceChance = _perk.GetPCPerkLevel(oPC, PerkType.PrecisionLogging) * 10; hasteChance = _perk.GetPCPerkLevel(oPC, PerkType.SpeedyLogger) * 10 + lucky; if (pcEntity.BackgroundID == (int)BackgroundType.Lumberjack) { hasteChance += 10; } hasBaggerPerk = _perk.GetPCPerkLevel(oPC, PerkType.WoodBagger) > 0; } else if (activityID == 2) // Mining { weaponChanceBonus = oWeapon.MiningBonus; if (weaponChanceBonus > 0) { weaponChanceBonus += _perk.GetPCPerkLevel(oPC, PerkType.PickaxeExpert) * 5; durabilityChanceReduction = _perk.GetPCPerkLevel(oPC, PerkType.PickaxeExpert) * 10 + lucky; } skillType = SkillType.Mining; perkChanceBonus = _perk.GetPCPerkLevel(oPC, PerkType.Miner) * 5 + lucky; secondResourceChance = _perk.GetPCPerkLevel(oPC, PerkType.PrecisionMining) * 10; hasteChance = _perk.GetPCPerkLevel(oPC, PerkType.SpeedyMiner) * 10 + lucky; if (pcEntity.BackgroundID == (int)BackgroundType.Miner) { hasteChance += 10; } hasBaggerPerk = _perk.GetPCPerkLevel(oPC, PerkType.OreBagger) > 0; } else { return(false); } PCSkill skill = _skill.GetPCSkillByID(oPC.GlobalID, (int)skillType); int durabilityLossChance = 100 - durabilityChanceReduction; if (_random.Random(100) <= durabilityLossChance) { _durability.RunItemDecay(oPC, oWeapon); } int baseChance = 10; int chance = baseChance + weaponChanceBonus; chance += CalculateSuccessChanceDeltaModifier(difficultyRating, skill.Rank); chance += perkChanceBonus; bool givePityItem = false; if (chance > 0) { if (_random.Random(100) + 1 <= hasteChance) { _.ApplyEffectToObject(DURATION_TYPE_TEMPORARY, _.EffectHaste(), oPC.Object, 8.0f); } // Give an item if the player hasn't gotten anything after 6-8 attempts. int attemptFailureCount = oPC.GetLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT") + 1; NWObject failureResource = NWObject.Wrap(oPC.GetLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT")); if (!failureResource.IsValid || !Equals(failureResource, resource)) { failureResource = resource; attemptFailureCount = 1; } int pityItemChance = 0; if (attemptFailureCount == 6) { pityItemChance = 60; } else if (attemptFailureCount == 7) { pityItemChance = 80; } else if (attemptFailureCount >= 8) { pityItemChance = 100; } if (_random.Random(100) + 1 <= pityItemChance) { givePityItem = true; attemptFailureCount = 0; } oPC.SetLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT", attemptFailureCount); oPC.SetLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT", failureResource.Object); } if (chance <= 0) { oPC.FloatingText("You do not have enough skill to harvest this resource..."); } else if (_random.Random(100) <= chance || givePityItem) { if (hasBaggerPerk) { _.CreateItemOnObject(resourceItemResref, oPC.Object); } else { _.CreateObject(OBJECT_TYPE_ITEM, resourceItemResref, location); } oPC.FloatingText("You break off some " + resourceName + "."); resource.SetLocalInt("RESOURCE_COUNT", --resourceCount); _.ApplyEffectToObject(DURATION_TYPE_INSTANT, _.EffectHeal(10000), resource.Object); if (_random.Random(100) + 1 <= secondResourceChance) { oPC.FloatingText("You break off a second piece."); if (hasBaggerPerk) { _.CreateItemOnObject(resourceItemResref, oPC.Object); } else { _.CreateObject(OBJECT_TYPE_ITEM, resourceItemResref, location); } } float deltaModifier = CalculateXPDeltaModifier(difficultyRating, skill.Rank); float baseXP = (100 + _random.Random(20)) * deltaModifier; int xp = (int)_skill.CalculateSkillAdjustedXP(baseXP, oWeapon.RecommendedLevel, skill.Rank); _skill.GiveSkillXP(oPC, skillType, xp); oPC.DeleteLocalInt("RESOURCE_ATTEMPT_FAILURE_COUNT"); oPC.DeleteLocalObject("RESOURCE_ATTEMPT_FAILURE_OBJECT"); } if (resourceCount <= 0) { SpawnSeed(resource, oPC); NWObject prop = NWObject.Wrap(resource.GetLocalObject("RESOURCE_PROP_OBJ")); if (prop.IsValid) { prop.Destroy(); } resource.Destroy(); } return(true); }
public virtual void OnPlayerInteract(PlayerCharacter source) { }
public Tree(GameServiceContainer services, Tile tile) : base(services, tile) { _playerCharacter = services.GetService <PlayerCharacter>(); }
public Item(string name, PlayerCharacter player, string desc) { this.Name = name; this.Player = player; this.Description = desc; }
public override void OnJumpButtonDown(PlayerCharacter character) { character.TransitionState(PlayerStates.SpearJumpStart); }
public static bool SharedCheckCanInteract( ICharacter character, IWorldObject worldObject, bool writeToLog) { if (worldObject == null || worldObject.IsDestroyed) { return(false); } var staticWorldObject = (IStaticWorldObject)worldObject; if (!staticWorldObject.ProtoStaticWorldObject.SharedCanInteract(character, worldObject, writeToLog)) { return(false); } using var tempCharactersNearby = Api.Shared.GetTempList <ICharacter>(); if (IsClient) { Client.Characters.GetKnownPlayerCharacters(tempCharactersNearby); } else { Server.World.GetScopedByPlayers(staticWorldObject, tempCharactersNearby); } foreach (var otherPlayerCharacter in tempCharactersNearby.AsList()) { if (ReferenceEquals(character, otherPlayerCharacter)) { continue; } if (PlayerCharacter.GetPublicState(otherPlayerCharacter).CurrentPublicActionState is HackingActionState.PublicState hackingState && ReferenceEquals(hackingState.TargetWorldObject, staticWorldObject)) { // already hacking by another player if (!writeToLog) { return(false); } Logger.Important($"Cannot start hacking {staticWorldObject} - already hacking by another player", character); if (IsClient) { NotificationSystem.ClientShowNotification( CoreStrings.Notification_ErrorCannotInteract, CoreStrings.Notification_ErrorObjectUsedByAnotherPlayer, NotificationColor.Bad, icon: staticWorldObject.ProtoStaticWorldObject.Icon); } return(false); } } return(true); }
public EmbedBuilder RollMeleeAttack(PlayerCharacter character, ValkFinderWeapon weapon, string attackType) { var attackTypeHitBonus = 0; var attackTypeDamageBonus = 0; switch (attackType) { case "heavy": attackTypeHitBonus = 2; attackTypeDamageBonus = 1; break; case "light": attackTypeHitBonus = -4; attackTypeDamageBonus = -2; break; case "normal": break; default: var embedBuilderError = new EmbedBuilder().WithColor(Color.Purple); embedBuilderError.AddField("Error", "Unknown attack type"); return(embedBuilderError); } var rnd = new Random(); var strMod = 0; //GetStatAsModifier(CharacterAttribute.STR, character); var dexMod = 0; //GetStatAsModifier(CharacterAttribute.DEX, character); -- ditto as below if (weapon.WeaponTrait == WeaponTrait.Finesse) { dexMod = GetStatAsModifier(CharacterAttribute.DEX, character); } else { strMod = GetStatAsModifier(CharacterAttribute.STR, character); } var attackRollRaw = rnd.Next(1, 21); var attackRoll = attackRollRaw + strMod + dexMod + attackTypeHitBonus + weapon.HitBonus; if (attackRoll < 0) { attackRoll = 0; } var crit = attackRollRaw == 20; //are we crittin'? var damageRollsRaw = new List <int>(); for (var i = 0; i < weapon.DamageDieAmount; i++) { damageRollsRaw.Add(rnd.Next(1, weapon.DamageDieSize + 1)); } var critRolls = new List <int>(); if (crit) { for (var i = 0; i < weapon.DamageDieAmount; i++) { critRolls.Add(rnd.Next(1, weapon.DamageDieSize + 1)); } } var damage = damageRollsRaw.Sum() + weapon.DamageBonus + attackTypeDamageBonus + critRolls.Sum() + strMod + dexMod; //TODO: Clean this up into something modular, redefining the entire string each time just isn't maintainable. //Done: cleaned up into something modular var attackRollString = $"(1d20 = {attackRollRaw}) + {strMod + dexMod}"; if (attackTypeHitBonus != 0) { attackRollString += $" + {attackTypeHitBonus} from attack type"; } if (weapon.HitBonus != 0) { attackRollString += $" + {weapon.HitBonus} from weapon"; } attackRollString += $" = {attackRoll}"; if (crit) { attackRollString += " **!Critical Hit!**"; } var damageRollsRawString = string.Join(" + ", damageRollsRaw); var critRollsString = string.Join(" + ", critRolls); var damageRollString = $"({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {damageRollsRawString})"; if (crit) { damageRollString += $" + ({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {critRollsString}) from crit"; } if (attackTypeDamageBonus != 0) { damageRollString += $" + {attackTypeDamageBonus} from attack type"; } if (weapon.DamageBonus != 0) { damageRollString += $" + {weapon.DamageBonus} from weapon"; } damageRollString += $" + {strMod}(STR) + {dexMod}(DEX) = {damage}"; var embedBuilder = new EmbedBuilder().WithColor(Color.Purple).WithTitle($"Melee: {weapon.WeaponName} ({attackType}) by {character.CharacterName}"); embedBuilder.AddField("Attack Roll", attackRollString); embedBuilder.AddField("Damage Roll", damageRollString); return(embedBuilder); }
public void ShouldBeNewbie() { var sut = new PlayerCharacter(); Assert.That(sut.IsNoob, Is.True); }
public void ShouldHaveTwoBows() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Has.Exactly(2).EndsWith("Bow")); }
public override void Update(PlayerCharacter character) { throw new System.NotImplementedException(); }
public void ShouldHaveANickName() { var sut = new PlayerCharacter(); Assert.That(sut.NickName, Is.Null); }
public EmbedBuilder RollRangedAttack(PlayerCharacter character, ValkFinderWeapon weapon, int range = 0) { var rnd = new Random(); var perMod = GetStatAsModifier(CharacterAttribute.PER, character); var dexMod = GetStatAsModifier(CharacterAttribute.DEX, character); var rangePenalty = 0; //-(range / 2); var attackRollRaw = rnd.Next(1, 21); var attackRoll = attackRollRaw + perMod + dexMod + rangePenalty + weapon.HitBonus; var crit = attackRollRaw == 20; /*if (attackRoll < 0) * { * attackRoll = 0; * } * * var damageRollBonus = 0; //GetStatAsModifier(weapon.DamageModifier, character); -- ―〃― * var rawDamageRoll = rnd.Next(1, weapon.DamageDieSize + 1); * var damageRoll = rawDamageRoll + damageRollBonus; * * if (crit) * damageRoll += rawDamageRoll; * * if (damageRoll < 0) * { * damageRoll = 0; * }*/ var damageRollsRaw = new List <int>(); for (int i = 0; i < weapon.DamageDieAmount; i++) { damageRollsRaw.Add(rnd.Next(1, weapon.DamageDieSize + 1)); } var damage = damageRollsRaw.Sum() + weapon.DamageBonus + dexMod; if (crit) { damage = damageRollsRaw.Sum() * 2 + weapon.DamageBonus; } var attackRollString = $"(1d20 = {attackRollRaw}) + {perMod + dexMod}"; if (weapon.HitBonus != 0) { attackRollString += $" + {weapon.HitBonus} from weapon"; } attackRollString += $" = {attackRoll}"; if (crit) { attackRollString += " **!Critical Hit!**"; } var damageRollsRawString = string.Join(" + ", damageRollsRaw); var damageRollString = $"({weapon.DamageDieAmount}d{weapon.DamageDieSize} = {damageRollsRawString})"; if (crit) { damageRollString += $" * 2 from crit"; } if (weapon.DamageBonus != 0) { damageRollString += $" + {weapon.DamageBonus} from weapon"; } damageRollString += $" + {dexMod}(DEX) = {damage}"; var embedBuilder = new EmbedBuilder().WithColor(Color.Purple).WithTitle($"Ranged: {weapon.WeaponName}"); embedBuilder.AddField("Attack Roll", attackRollString); embedBuilder.AddField("Damage Roll", damageRollString); return(embedBuilder); }
public void ShouldHaveDefaultWeaponsInAlphabeticalOrder() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Is.Ordered); }
public void NotHaveNickNameByDefault() { var sut = new PlayerCharacter(); Assert.IsNull(sut.Nickname); }
public override void Process() { if (_texture == null) { _texture = _content.Load <Texture2D>(".\\Graphics\\Items\\Items"); } Entity player = BlackBoard.GetEntry <Entity>("Player"); Health hp = player.GetComponent <Health>(); PlayerCharacter character = player.GetComponent <PlayerCharacter>(); Vector2 position = new Vector2( _camera.TopLeft.X + 20, _camera.TopLeft.Y + 70); Rectangle sourceBottom = new Rectangle(2, 55, 14, 16); Rectangle sourceLife = new Rectangle(2, 51, 14, 2); Rectangle sourceEmpty = new Rectangle(2, 32, 14, 2); Rectangle sourceTop = new Rectangle(2, 13, 14, 4); if (character.CharacterType == CharacterType.Zero) { sourceBottom = new Rectangle(50, 55, 14, 16); } Vector2 origin = new Vector2(14.0f / 2.0f, 3.0f / 2.0f); _spriteBatch.Draw(_texture, position, sourceBottom, Color.White, 0.0f, origin, 1.0f, SpriteEffects.None, 0); for (int x = 1; x <= hp.MaxHitPoints; x++) { Rectangle source = sourceLife; if (x > hp.CurrentHitPoints) { source = sourceEmpty; } if (x == 1) { position = new Vector2( position.X, position.Y - 1); } else { position = new Vector2( position.X, position.Y - 2); } _spriteBatch.Draw(_texture, position, source, Color.White, 0.0f, origin, 1.0f, SpriteEffects.None, 0); } position = new Vector2( position.X, position.Y - 4); _spriteBatch.Draw(_texture, position, sourceTop, Color.White, 0.0f, origin, 1.0f, SpriteEffects.None, 0); }
public void ShouldHaveDefaultRandomGeneratedName() { var sut = new PlayerCharacter(); Assert.That(sut.Name, Is.Not.Empty); }
public void ShouldHaveALongBow() { var sut = new PlayerCharacter(); Assert.That(sut.Weapons, Contains.Item("Long Bow")); }
void Start() { player = GetComponent <PlayerCharacter>(); }
public void NickNameNullWhenNew() { var sut = new PlayerCharacter(); Assert.Null(sut.Nickname); }