public ObtainToteableObjective(PsycheEnv psycheEnv) : base(psycheEnv) { weightedChancePairs = new List <WeightedChancePair>() { new WeightedChancePair(() => { return(new ApproachAndPickupMotion(psycheEnv, desiredToteable)); }, (x) => { if (!desiredToteable.beingHeld) { return(1.0f); } else { return(0); } }), new WeightedChancePair(() => { return(new ApproachAndRobMotion(psycheEnv, desiredToteable)); }, (x) => { if (desiredToteable.beingHeld) { return(1.0f); } else { return(0); } }), }; }
public LocateToteableObjective(PsycheEnv psycheEnv) : base(psycheEnv) { weightedChancePairs = new List <WeightedChancePair>() { new WeightedChancePair(() => { return(new ScanSurroundingsForObjectMotion(psycheEnv, this, desiredType)); }, (x) => { return(1.0f); }) }; }
public RelocateGoal(PsycheEnv psycheEnv, Vector3 targetLocation) : base(psycheEnv) { this.targetLocation = targetLocation; subGoals = new List <GoalNode>() { new LocationObjective(psycheEnv, targetLocation) }; }
public LocationObjective(PsycheEnv psycheEnv, Vector3 targetLocation) : base(psycheEnv) { this.targetLocation = targetLocation; weightedChancePairs = new List <WeightedChancePair>() { //new WeightedChancePair(new MovementMotion(psycheEnv, targetLocation), (x)=>{ return 1.0f; } ), //new WeightedChancePair(new TeleportMotion(psycheEnv, targetLocation), (x)=>{ return 1.0f; } ) }; }
public ObtainGeneralObjectGoal(PsycheEnv psycheEnv, TypeTag typeTag) : base(psycheEnv) { x0 = new LocateToteableObjective(psycheEnv); x1 = new ObtainToteableObjective(psycheEnv); subGoals = new List <GoalNode>() { x0, x1 }; }
public override void ExecuteMotion(PsycheEnv psycheEnv) { Collider[] nearbyColliders = Physics.OverlapSphere(psycheEnv.gameObject.transform.position, radius); ICollection <Entity> discoveredEntities = new List <Entity>(); foreach (Collider collider in nearbyColliders) { Entity entity = collider.GetComponent <Entity>(); if (entity != null) { if (entity.typeTags.Contains(desiredType)) { discoveredEntities.Add(entity); } } } reportReceiver.ReceiveReport(discoveredEntities); }
public Goal(PsycheEnv psycheEnv) : base(psycheEnv) { }
public override void ExecuteMotion(PsycheEnv psycheEnv) { psycheEnv.brain.PushState(new WalkToState(psycheEnv)); }
public ScanSurroundingsForObjectMotion(PsycheEnv psycheEnv, IReportEntityReceiver reportReceiver, TypeTag desiredType) : base(psycheEnv) { this.reportReceiver = reportReceiver; this.desiredType = desiredType; }
public Brain(PsycheEnv psycheEnv) { this.psycheEnv = psycheEnv; this.stateQueue = new PriorityQueue <State>(); }
public MovementMotion(PsycheEnv psycheEnv, Vector3 targetLocation) : base(psycheEnv) { this.targetLocation = targetLocation; }
public GoalNode(PsycheEnv psycheEnv) { this.psycheEnv = psycheEnv; }
public RagdollState(PsycheEnv psycheEnv, float knockoutTime = 5) : base(psycheEnv) { this.knockoutTime = knockoutTime; psycheEnv.character.ragdollController.ActivateRagdoll(); }
public Objective(PsycheEnv psycheEnv) : base(psycheEnv) { }
public abstract void ExecuteMotion(PsycheEnv psycheEnv);
public WalkToState(PsycheEnv psycheEnv) : base(psycheEnv) { }
public ApproachAndRobState(PsycheEnv psycheEnv, Toteable targetToteable) : base(psycheEnv) { this.targetToteable = targetToteable; }
public override void ExecuteMotion(PsycheEnv psycheEnv) { psycheEnv.brain.PushState(new ApproachAndRobState(psycheEnv, targetObject)); }
public ApproachAndRobMotion(PsycheEnv psycheEnv, Toteable targetObject) : base(psycheEnv) { this.targetObject = targetObject; }
public ApproachAndPickupState(PsycheEnv psycheEnv, Toteable targetToteable) : base(psycheEnv) { this.targetToteable = targetToteable; EventHub.PickupEvent += OnAnyItemPickup; }
public State(PsycheEnv psycheEnv) { this.psycheEnv = psycheEnv; }
public Motion(PsycheEnv psycheEnv) { this.psycheEnv = psycheEnv; }