protected virtual void DrawBaseSettings() { ProjectileConfiguration settings = target as ProjectileConfiguration; UnityObjectField <Sprite>(ref settings.ProjectileSprite, ObjectNames.NicifyVariableName(nameof(ProjectileConfiguration.ProjectileSprite))); FloatField(ref settings.HitDistance, ObjectNames.NicifyVariableName(nameof(ProjectileConfiguration.HitDistance))); FloatField(ref settings.MaxAliveTime, ObjectNames.NicifyVariableName(nameof(ProjectileConfiguration.MaxAliveTime))); }
protected virtual void DrawTurnSettings() { ProjectileConfiguration settings = target as ProjectileConfiguration; BoolField(ref settings.InstantTurn, ObjectNames.NicifyVariableName(nameof(ProjectileConfiguration.InstantTurn))); if (!settings.InstantTurn) { FloatField(ref settings.TurnSpeed, ObjectNames.NicifyVariableName(nameof(ProjectileConfiguration.TurnSpeed))); } }
public void Initialise(ProjectileConfiguration configuration, IAttackableEntity targetEntity) { //Set base values TargetEntity = targetEntity; Configuration = configuration; AliveTime = 0; //Update sprite spriteRenderer = spriteRenderer == null?gameObject.AddComponent <SpriteRenderer>() : spriteRenderer; spriteRenderer.sprite = configuration.ProjectileSprite; //Start Projectile Configuration.ProjectileStart(this); }
private IProjectileConfiguration GetSelections(Ballistics.IProjectileConfiguration configuration) { List <PartSelectionBehavior> lackingComponents = this.GetInsufficientselections(configuration.Parts); if (lackingComponents.Count == 0 || infiniteResources) { //I'm not sure why we ARE making a NEW IProjectileConfiguration here, but it may well be an artifcat of previous design - Ian S. IProjectileConfiguration retrievedConfiguration = new ProjectileConfiguration(); foreach (PartSelectionBehavior nextselectionType in configuration.Parts) { retrievedConfiguration.Add(this.Take(nextselectionType)); } return(retrievedConfiguration); } else { this.DisplayInsufficientselections(lackingComponents); return(null); } }
public static void CreateProjectile(ProjectileConfiguration projectileConfiguration, IAttackableEntity projectileTarget) { Projectile projectile = ProjectilePool.GetPoolObject(); projectile.Initialise(projectileConfiguration, projectileTarget); }