private void PerformBasicPulseGunner(Player performingPlayer) { var pulseCannonStation = SittingDuck.StandardStationsByLocation[StationLocation.LowerWhite]; if (CanFireCannon(performingPlayer) && pulseCannonStation.CanFireCannon(performingPlayer) && StationLocation != StationLocation.LowerWhite) { PerformAAction(performingPlayer, false); pulseCannonStation.PerformAAction(performingPlayer, false); } else if (StationLocation == StationLocation.LowerWhite) { PerformAAction(performingPlayer, false); } else { pulseCannonStation.AlphaComponent.RemoveMechanicBuff(); if (!CanFireCannon(performingPlayer)) { PerformAAction(performingPlayer, false); } else { AlphaComponent.RemoveMechanicBuff(); } } }
private void PerformBasicSpecialization(Player performingPlayer, int currentTurn) { switch (performingPlayer.Specialization) { case PlayerSpecialization.DataAnalyst: SittingDuck.StandardStationsByLocation[StationLocation.UpperWhite].PerformCAction(performingPlayer, currentTurn, true); performingPlayer.BonusPoints++; break; case PlayerSpecialization.EnergyTechnician: SittingDuck.StandardStationsByLocation[StationLocation.LowerWhite].PerformBAction(performingPlayer, false, true); break; case PlayerSpecialization.Hypernavigator: BasicHypernavigator(); break; case PlayerSpecialization.Mechanic: AlphaComponent.AddMechanicBuff(); break; case PlayerSpecialization.Medic: PerformBasicMedic(performingPlayer, currentTurn); break; case PlayerSpecialization.PulseGunner: PerformBasicPulseGunner(performingPlayer); break; case PlayerSpecialization.Rocketeer: SittingDuck.StandardStationsByLocation[StationLocation.LowerBlue].PerformCAction(performingPlayer, currentTurn, true); break; case PlayerSpecialization.SpecialOps: var actionToMakeHeroic = performingPlayer.Actions.Skip(currentTurn).FirstOrDefault(action => action.CanBeMadeHeroic()); actionToMakeHeroic?.MakeHeroic(); break; case PlayerSpecialization.SquadLeader: PerformBasicSquadLeader(performingPlayer); break; case PlayerSpecialization.Teleporter: var playerToTeleport = SittingDuck.PlayersOnShip.SingleOrDefault(playerOnShip => playerOnShip.PlayerToTeleport); var teleportDestination = SittingDuck.PlayersOnShip.SingleOrDefault(playerOnShip => playerOnShip.TeleportDestination); if (playerToTeleport != null && teleportDestination != null) { playerToTeleport.CurrentStation = teleportDestination.CurrentStation; } break; default: throw new InvalidOperationException("Missing specialization when attempting basic specialization."); } }
private void PerformAAction(Player performingPlayer, bool isHeroic, bool isAdvanced = false) { var firstAThreat = GetFirstThreatOfType(PlayerActionType.Alpha, performingPlayer); if (firstAThreat != null) { DamageThreat(isHeroic ? 2 : 1, firstAThreat, performingPlayer, isHeroic); } else if (!HasIrreparableMalfunctionOfType(PlayerActionType.Alpha)) { AlphaComponent.PerformAAction(isHeroic, performingPlayer, isAdvanced); } AlphaComponent.RemoveMechanicBuff(); }
public void Execute() { float deltaTime = _time.GetSingleEntity().time.deltaTime; foreach (Entity e in _group.GetEntities()) { AlphaComponent alpha = e.alpha; alpha.time -= deltaTime; GameObjectComponent gameobject = e.gameObject; SpriteRenderer renderer = gameobject.gameObject.GetComponent <SpriteRenderer>(); Color color = renderer.color; renderer.color = new Color(color.r, color.g, color.b, alpha.time / alpha.totalTime); } }
private static Component CreateAlpha(GameObject gameObject, IAssetLoader assetLoader, AlphaComponent alphaComponent) { var canvasGroup = gameObject.AddComponent <CanvasGroup>(); if (alphaComponent.Alpha != null) { canvasGroup.alpha = alphaComponent.Alpha.Value; } return(canvasGroup); }
private bool CanFireCannon(Player performingPlayer) { var firstAThreat = GetFirstThreatOfType(PlayerActionType.Alpha, performingPlayer); return(firstAThreat == null && !HasIrreparableMalfunctionOfType(PlayerActionType.Alpha) && AlphaComponent.CanFire()); }
public virtual void PerformEndOfTurn() { AlphaComponent.PerformEndOfTurn(); }
public void SetOpticsDisrupted(bool opticsDisrupted) { AlphaComponent.SetOpticsDisrupted(opticsDisrupted); }