private static void RebuildSkillDrivers() { BaseHelpers.DestroySkillDrivers(grandParentMaster); AISkillDriver GroundSwipe = grandParentMaster.AddComponent <AISkillDriver>(); AISkillDriver SpiritPull = grandParentMaster.AddComponent <AISkillDriver>(); AISkillDriver Offspring = grandParentMaster.AddComponent <AISkillDriver>(); AISkillDriver PortalJump = grandParentMaster.AddComponent <AISkillDriver>(); AISkillDriver Path = grandParentMaster.AddComponent <AISkillDriver>(); GroundSwipe.customName = "Ground Swipe"; GroundSwipe.skillSlot = SkillSlot.Primary; //GroundSwipe.requiredSkill = GroundSwipe.requireSkillReady = true; GroundSwipe.requireEquipmentReady = false; GroundSwipe.moveTargetType = TargetType.CurrentEnemy; GroundSwipe.minUserHealthFraction = float.NegativeInfinity; GroundSwipe.maxUserHealthFraction = float.PositiveInfinity; GroundSwipe.minTargetHealthFraction = float.NegativeInfinity; GroundSwipe.maxTargetHealthFraction = float.PositiveInfinity; GroundSwipe.minDistance = 0; GroundSwipe.maxDistance = 15; GroundSwipe.selectionRequiresTargetLoS = false; GroundSwipe.activationRequiresTargetLoS = true; GroundSwipe.activationRequiresAimConfirmation = true; GroundSwipe.movementType = MovementType.ChaseMoveTarget; GroundSwipe.moveInputScale = 1; GroundSwipe.aimType = AimType.AtMoveTarget; GroundSwipe.ignoreNodeGraph = true; GroundSwipe.driverUpdateTimerOverride = -1; GroundSwipe.resetCurrentEnemyOnNextDriverSelection = false; GroundSwipe.noRepeat = false; GroundSwipe.shouldSprint = false; GroundSwipe.shouldFireEquipment = false; GroundSwipe.shouldTapButton = false; SpiritPull.customName = "Spirit Pull"; SpiritPull.skillSlot = SkillSlot.Secondary; //SpiritPull.requiredSkill = SpiritPull.requireSkillReady = true; SpiritPull.requireEquipmentReady = false; SpiritPull.moveTargetType = TargetType.CurrentEnemy; SpiritPull.minUserHealthFraction = float.NegativeInfinity; SpiritPull.maxUserHealthFraction = float.PositiveInfinity; SpiritPull.minTargetHealthFraction = float.NegativeInfinity; SpiritPull.maxTargetHealthFraction = float.PositiveInfinity; SpiritPull.minDistance = 15; SpiritPull.maxDistance = 200; SpiritPull.selectionRequiresTargetLoS = false; SpiritPull.activationRequiresTargetLoS = false; SpiritPull.activationRequiresAimConfirmation = false; SpiritPull.movementType = MovementType.ChaseMoveTarget; SpiritPull.moveInputScale = 1; SpiritPull.aimType = AimType.AtMoveTarget; SpiritPull.ignoreNodeGraph = true; SpiritPull.driverUpdateTimerOverride = -1; SpiritPull.resetCurrentEnemyOnNextDriverSelection = false; SpiritPull.noRepeat = false; SpiritPull.shouldSprint = false; SpiritPull.shouldFireEquipment = false; SpiritPull.shouldTapButton = false; Offspring.customName = "Off Spring"; Offspring.skillSlot = SkillSlot.Utility; //Offspring.requiredSkill = Offspring.requireSkillReady = true; Offspring.requireEquipmentReady = false; Offspring.moveTargetType = TargetType.CurrentEnemy; Offspring.minUserHealthFraction = float.NegativeInfinity; Offspring.maxUserHealthFraction = float.PositiveInfinity; Offspring.minTargetHealthFraction = float.NegativeInfinity; Offspring.maxTargetHealthFraction = float.PositiveInfinity; Offspring.minDistance = 15; Offspring.maxDistance = float.PositiveInfinity; Offspring.selectionRequiresTargetLoS = false; Offspring.activationRequiresTargetLoS = false; Offspring.activationRequiresAimConfirmation = false; Offspring.movementType = MovementType.ChaseMoveTarget; Offspring.moveInputScale = 1; Offspring.aimType = AimType.AtMoveTarget; Offspring.ignoreNodeGraph = true; Offspring.driverUpdateTimerOverride = -1; Offspring.resetCurrentEnemyOnNextDriverSelection = false; Offspring.noRepeat = false; Offspring.shouldSprint = false; Offspring.shouldFireEquipment = false; Offspring.shouldTapButton = false; PortalJump.customName = "Portal Jump"; PortalJump.skillSlot = SkillSlot.Special; //PortalJump. requiredSkill = PortalJump.requireSkillReady = true; PortalJump.requireEquipmentReady = false; PortalJump.moveTargetType = TargetType.CurrentEnemy; PortalJump.minUserHealthFraction = float.NegativeInfinity; PortalJump.maxUserHealthFraction = float.PositiveInfinity; PortalJump.minTargetHealthFraction = float.NegativeInfinity; PortalJump.maxTargetHealthFraction = float.PositiveInfinity; PortalJump.minDistance = 50; PortalJump.maxDistance = float.PositiveInfinity; PortalJump.selectionRequiresTargetLoS = false; PortalJump.activationRequiresTargetLoS = false; PortalJump.activationRequiresAimConfirmation = false; PortalJump.movementType = MovementType.ChaseMoveTarget; PortalJump.moveInputScale = 1; PortalJump.aimType = AimType.AtMoveTarget; PortalJump.ignoreNodeGraph = true; PortalJump.driverUpdateTimerOverride = -1; PortalJump.resetCurrentEnemyOnNextDriverSelection = false; PortalJump.noRepeat = false; PortalJump.shouldSprint = false; PortalJump.shouldFireEquipment = false; PortalJump.shouldTapButton = false; Path.customName = "Path"; Path.skillSlot = SkillSlot.None; //Path.requiredSkill = Path.requireSkillReady = false; Path.requireEquipmentReady = false; Path.moveTargetType = TargetType.CurrentEnemy; Path.minUserHealthFraction = float.NegativeInfinity; Path.maxUserHealthFraction = float.PositiveInfinity; Path.minTargetHealthFraction = float.NegativeInfinity; Path.maxTargetHealthFraction = float.PositiveInfinity; Path.minDistance = 0; Path.maxDistance = float.PositiveInfinity; Path.selectionRequiresTargetLoS = false; Path.activationRequiresTargetLoS = false; Path.activationRequiresAimConfirmation = false; Path.movementType = MovementType.ChaseMoveTarget; Path.moveInputScale = 1; Path.aimType = AimType.AtMoveTarget; Path.ignoreNodeGraph = true; Path.driverUpdateTimerOverride = -1; Path.resetCurrentEnemyOnNextDriverSelection = false; Path.noRepeat = false; Path.shouldSprint = false; Path.shouldFireEquipment = false; Path.shouldTapButton = false; }
private static void RebuildSkillDrivers() { BaseHelpers.DestroySkillDrivers(megaMushrumMaster); AISkillDriver SporeGrenade = megaMushrumMaster.AddComponent <AISkillDriver>(); AISkillDriver SuicideBomb = megaMushrumMaster.AddComponent <AISkillDriver>(); AISkillDriver Harvest = megaMushrumMaster.AddComponent <AISkillDriver>(); AISkillDriver Flee = megaMushrumMaster.AddComponent <AISkillDriver>(); AISkillDriver Path = megaMushrumMaster.AddComponent <AISkillDriver>(); AISkillDriver StrafePath = megaMushrumMaster.AddComponent <AISkillDriver>(); SporeGrenade.customName = "Spore Grenade"; SporeGrenade.skillSlot = SkillSlot.Primary; SporeGrenade.requireSkillReady = true; SporeGrenade.requireEquipmentReady = false; SporeGrenade.moveTargetType = TargetType.CurrentEnemy; SporeGrenade.minUserHealthFraction = 0.5f; SporeGrenade.maxUserHealthFraction = float.PositiveInfinity; SporeGrenade.minTargetHealthFraction = float.NegativeInfinity; SporeGrenade.maxTargetHealthFraction = float.PositiveInfinity; SporeGrenade.minDistance = 0; SporeGrenade.maxDistance = 60; SporeGrenade.selectionRequiresTargetLoS = false; SporeGrenade.activationRequiresTargetLoS = true; SporeGrenade.activationRequiresAimConfirmation = true; SporeGrenade.movementType = MovementType.StrafeMovetarget; SporeGrenade.moveInputScale = 1; SporeGrenade.aimType = AimType.AtMoveTarget; SporeGrenade.ignoreNodeGraph = false; SporeGrenade.driverUpdateTimerOverride = -1; SporeGrenade.resetCurrentEnemyOnNextDriverSelection = false; SporeGrenade.noRepeat = false; SporeGrenade.shouldSprint = false; SporeGrenade.shouldFireEquipment = false; SporeGrenade.shouldTapButton = false; SuicideBomb.customName = "Suicide Bomb"; SuicideBomb.skillSlot = SkillSlot.Secondary; //SpiritPull.requiredSkill = SuicideBomb.requireSkillReady = true; SuicideBomb.requireEquipmentReady = false; SuicideBomb.moveTargetType = TargetType.CurrentEnemy; SuicideBomb.minUserHealthFraction = float.NegativeInfinity; SuicideBomb.maxUserHealthFraction = float.PositiveInfinity; SuicideBomb.minTargetHealthFraction = float.NegativeInfinity; SuicideBomb.maxTargetHealthFraction = float.PositiveInfinity; SuicideBomb.minDistance = 0; SuicideBomb.maxDistance = 10; SuicideBomb.selectionRequiresTargetLoS = false; SuicideBomb.activationRequiresTargetLoS = false; SuicideBomb.activationRequiresAimConfirmation = false; SuicideBomb.movementType = MovementType.ChaseMoveTarget; SuicideBomb.moveInputScale = 1; SuicideBomb.aimType = AimType.AtMoveTarget; SuicideBomb.ignoreNodeGraph = true; SuicideBomb.driverUpdateTimerOverride = -1; SuicideBomb.resetCurrentEnemyOnNextDriverSelection = false; SuicideBomb.noRepeat = false; SuicideBomb.shouldSprint = false; SuicideBomb.shouldFireEquipment = false; SuicideBomb.shouldTapButton = false; Harvest.customName = "Harvest"; Harvest.skillSlot = SkillSlot.Utility; //Offspring.requiredSkill = Harvest.requireSkillReady = true; Harvest.requireEquipmentReady = false; Harvest.moveTargetType = TargetType.CurrentEnemy; Harvest.minUserHealthFraction = float.NegativeInfinity; Harvest.maxUserHealthFraction = 0.5f; Harvest.minTargetHealthFraction = float.NegativeInfinity; Harvest.maxTargetHealthFraction = float.PositiveInfinity; Harvest.minDistance = 0; Harvest.maxDistance = float.PositiveInfinity; Harvest.selectionRequiresTargetLoS = false; Harvest.activationRequiresTargetLoS = false; Harvest.activationRequiresAimConfirmation = false; Harvest.movementType = MovementType.Stop; Harvest.moveInputScale = 1; Harvest.aimType = AimType.None; Harvest.ignoreNodeGraph = false; Harvest.driverUpdateTimerOverride = 4; Harvest.resetCurrentEnemyOnNextDriverSelection = false; Harvest.noRepeat = false; Harvest.shouldSprint = false; Harvest.shouldFireEquipment = false; Harvest.shouldTapButton = false; Flee.customName = "Flee"; Flee.skillSlot = SkillSlot.None; //Flee.requiredSkill = Flee.requireSkillReady = false; Flee.requireEquipmentReady = false; Flee.moveTargetType = TargetType.CurrentEnemy; Flee.minUserHealthFraction = float.NegativeInfinity; Flee.maxUserHealthFraction = 0.5f; Flee.minTargetHealthFraction = float.NegativeInfinity; Flee.maxTargetHealthFraction = float.PositiveInfinity; Flee.minDistance = 0; Flee.maxDistance = 60; Flee.selectionRequiresTargetLoS = false; Flee.activationRequiresTargetLoS = false; Flee.activationRequiresAimConfirmation = false; Flee.movementType = MovementType.FleeMoveTarget; Flee.moveInputScale = 1; Flee.aimType = AimType.AtMoveTarget; Flee.ignoreNodeGraph = false; Flee.driverUpdateTimerOverride = 3; Flee.resetCurrentEnemyOnNextDriverSelection = false; Flee.noRepeat = false; Flee.shouldSprint = true; Flee.shouldFireEquipment = false; Flee.shouldTapButton = false; Path.customName = "Path"; Path.skillSlot = SkillSlot.None; //Path.requiredSkill = Path.requireSkillReady = false; Path.requireEquipmentReady = false; Path.moveTargetType = TargetType.CurrentEnemy; Path.minUserHealthFraction = float.NegativeInfinity; Path.maxUserHealthFraction = float.PositiveInfinity; Path.minTargetHealthFraction = float.NegativeInfinity; Path.maxTargetHealthFraction = float.PositiveInfinity; Path.minDistance = 0; Path.maxDistance = float.PositiveInfinity; Path.selectionRequiresTargetLoS = false; Path.activationRequiresTargetLoS = false; Path.activationRequiresAimConfirmation = false; Path.movementType = MovementType.ChaseMoveTarget; Path.moveInputScale = 1; Path.aimType = AimType.AtMoveTarget; Path.ignoreNodeGraph = true; Path.driverUpdateTimerOverride = -1; Path.resetCurrentEnemyOnNextDriverSelection = false; Path.noRepeat = false; Path.shouldSprint = false; Path.shouldFireEquipment = false; Path.shouldTapButton = false; StrafePath.customName = "Strafe Path"; StrafePath.skillSlot = SkillSlot.None; //Path.requiredSkill = StrafePath.requireSkillReady = false; StrafePath.requireEquipmentReady = false; StrafePath.moveTargetType = TargetType.CurrentEnemy; StrafePath.minUserHealthFraction = float.NegativeInfinity; StrafePath.maxUserHealthFraction = float.PositiveInfinity; StrafePath.minTargetHealthFraction = float.NegativeInfinity; StrafePath.maxTargetHealthFraction = float.PositiveInfinity; StrafePath.minDistance = 0; StrafePath.maxDistance = 30; StrafePath.selectionRequiresTargetLoS = false; StrafePath.activationRequiresTargetLoS = false; StrafePath.activationRequiresAimConfirmation = false; StrafePath.movementType = MovementType.StrafeMovetarget; StrafePath.moveInputScale = 1; StrafePath.aimType = AimType.AtMoveTarget; StrafePath.ignoreNodeGraph = false; StrafePath.driverUpdateTimerOverride = -1; StrafePath.resetCurrentEnemyOnNextDriverSelection = false; StrafePath.noRepeat = false; StrafePath.shouldSprint = false; StrafePath.shouldFireEquipment = false; StrafePath.shouldTapButton = false; }
private static void RebuildSkillDrivers() { BaseHelpers.DestroySkillDrivers(clayManMaster); AISkillDriver Swing = clayManMaster.AddComponent <AISkillDriver>(); AISkillDriver Chase = clayManMaster.AddComponent <AISkillDriver>(); AISkillDriver Leap = clayManMaster.AddComponent <AISkillDriver>(); AISkillDriver anotherSkillDriver = clayManMaster.AddComponent <AISkillDriver>(); AISkillDriver andAnotherSkillDriver = clayManMaster.AddComponent <AISkillDriver>(); Swing.skillSlot = SkillSlot.Primary; Swing.requireSkillReady = false; Swing.requireEquipmentReady = false; Swing.moveTargetType = TargetType.CurrentEnemy; Swing.minUserHealthFraction = float.NegativeInfinity; Swing.maxUserHealthFraction = float.PositiveInfinity; Swing.minTargetHealthFraction = float.NegativeInfinity; Swing.maxTargetHealthFraction = float.PositiveInfinity; Swing.minDistance = 0; Swing.maxDistance = 2; Swing.selectionRequiresTargetLoS = false; Swing.activationRequiresTargetLoS = false; Swing.activationRequiresAimConfirmation = false; Swing.movementType = MovementType.ChaseMoveTarget; Swing.moveInputScale = 1; Swing.aimType = AimType.AtMoveTarget; Swing.ignoreNodeGraph = true; Swing.driverUpdateTimerOverride = -1; Swing.resetCurrentEnemyOnNextDriverSelection = false; Swing.noRepeat = false; Swing.shouldSprint = false; Swing.shouldFireEquipment = false; Swing.shouldTapButton = false; Leap.skillSlot = SkillSlot.Secondary; Leap.requireSkillReady = false; Leap.requireEquipmentReady = false; Leap.moveTargetType = TargetType.CurrentEnemy; Leap.minUserHealthFraction = float.NegativeInfinity; Leap.maxUserHealthFraction = float.PositiveInfinity; Leap.minTargetHealthFraction = float.NegativeInfinity; Leap.maxTargetHealthFraction = float.PositiveInfinity; Leap.minDistance = 0; Leap.maxDistance = 30; Leap.selectionRequiresTargetLoS = false; Leap.activationRequiresTargetLoS = false; Leap.activationRequiresAimConfirmation = false; Leap.movementType = MovementType.ChaseMoveTarget; Leap.moveInputScale = 1; Leap.aimType = AimType.AtMoveTarget; Leap.ignoreNodeGraph = true; Leap.driverUpdateTimerOverride = -1; Leap.resetCurrentEnemyOnNextDriverSelection = false; Leap.noRepeat = false; Leap.shouldSprint = false; Leap.shouldFireEquipment = false; Leap.shouldTapButton = false; Chase.skillSlot = SkillSlot.None; Chase.requireSkillReady = false; Chase.requireEquipmentReady = false; Chase.moveTargetType = TargetType.CurrentEnemy; Chase.minUserHealthFraction = float.NegativeInfinity; Chase.maxUserHealthFraction = float.PositiveInfinity; Chase.minTargetHealthFraction = float.NegativeInfinity; Chase.maxTargetHealthFraction = float.PositiveInfinity; Chase.minDistance = 10; Chase.maxDistance = 10; Chase.selectionRequiresTargetLoS = true; Chase.activationRequiresTargetLoS = false; Chase.activationRequiresAimConfirmation = false; Chase.movementType = MovementType.ChaseMoveTarget; Chase.moveInputScale = 1; Chase.aimType = AimType.AtMoveTarget; Chase.ignoreNodeGraph = true; Chase.driverUpdateTimerOverride = -1; Chase.resetCurrentEnemyOnNextDriverSelection = false; Chase.noRepeat = false; Chase.shouldSprint = false; Chase.shouldFireEquipment = false; Chase.shouldTapButton = false; anotherSkillDriver.customName = "FollowNodeGraphToTarget"; anotherSkillDriver.skillSlot = SkillSlot.None; anotherSkillDriver.requireSkillReady = false; anotherSkillDriver.requireEquipmentReady = false; anotherSkillDriver.moveTargetType = TargetType.CurrentEnemy; anotherSkillDriver.minUserHealthFraction = float.NegativeInfinity; anotherSkillDriver.maxUserHealthFraction = float.PositiveInfinity; anotherSkillDriver.minTargetHealthFraction = float.NegativeInfinity; anotherSkillDriver.maxTargetHealthFraction = float.PositiveInfinity; anotherSkillDriver.minDistance = 0; anotherSkillDriver.maxDistance = float.PositiveInfinity; anotherSkillDriver.selectionRequiresTargetLoS = false; anotherSkillDriver.activationRequiresTargetLoS = false; anotherSkillDriver.activationRequiresAimConfirmation = false; anotherSkillDriver.movementType = MovementType.ChaseMoveTarget; anotherSkillDriver.moveInputScale = 1; anotherSkillDriver.aimType = AimType.MoveDirection; anotherSkillDriver.ignoreNodeGraph = false; anotherSkillDriver.driverUpdateTimerOverride = -1; anotherSkillDriver.resetCurrentEnemyOnNextDriverSelection = false; anotherSkillDriver.noRepeat = false; anotherSkillDriver.shouldSprint = false; anotherSkillDriver.shouldFireEquipment = false; anotherSkillDriver.shouldTapButton = false; andAnotherSkillDriver.customName = "ChaseOffNodegraph"; andAnotherSkillDriver.skillSlot = SkillSlot.None; andAnotherSkillDriver.requireSkillReady = false; andAnotherSkillDriver.requireEquipmentReady = false; andAnotherSkillDriver.moveTargetType = TargetType.CurrentEnemy; andAnotherSkillDriver.minUserHealthFraction = float.NegativeInfinity; andAnotherSkillDriver.maxUserHealthFraction = float.PositiveInfinity; andAnotherSkillDriver.minTargetHealthFraction = float.NegativeInfinity; andAnotherSkillDriver.maxTargetHealthFraction = float.PositiveInfinity; andAnotherSkillDriver.minDistance = 0; andAnotherSkillDriver.maxDistance = 10; andAnotherSkillDriver.selectionRequiresTargetLoS = true; andAnotherSkillDriver.activationRequiresTargetLoS = false; andAnotherSkillDriver.activationRequiresAimConfirmation = false; andAnotherSkillDriver.movementType = MovementType.ChaseMoveTarget; andAnotherSkillDriver.moveInputScale = 1; andAnotherSkillDriver.aimType = AimType.AtMoveTarget; andAnotherSkillDriver.ignoreNodeGraph = true; andAnotherSkillDriver.driverUpdateTimerOverride = -1; andAnotherSkillDriver.resetCurrentEnemyOnNextDriverSelection = false; andAnotherSkillDriver.noRepeat = false; andAnotherSkillDriver.shouldSprint = false; andAnotherSkillDriver.shouldFireEquipment = false; andAnotherSkillDriver.shouldTapButton = false; }