示例#1
0
        public static void Print(ICECreatureControl _control)
        {
            if (!_control.ShowInfo)
            {
                return;
            }

            string _info = "\n";

            _info += "Status: \n";

            _info += "\tAge\t\t\t : " + (_control.Creature.Status.UseAging ? DateTools.FormatTimeDetailed(_control.Creature.Status.Age) : "INACTIVE") + "\n";
            _info += "\tGender\t\t\t : " + _control.Creature.Status.GenderType.ToString() + "\n";
            _info += "\tTrophic Level\t\t : " + _control.Creature.Status.TrophicLevel.ToString() + "\n";
            _info += "\tEnvironment Temperature\t : " + (_control.Creature.Status.UseEnvironmentTemperature ? _control.Creature.Status.TemperatureDeviationInPercent + "%" : "INACTIVE") + "\n";
            _info += "\n";

            if (_control.Creature.Status.UseAdvanced)
            {
                _info += "\tDurability\t\t : " + _control.Creature.Status.Durability + "/" + _control.Creature.Status.InitialDurabilityMaximum + " (" + _control.Creature.Status.DurabilityInPercent + "%) \n";
                _info += "\n";
                _info += "\tFitness\t\t\t : " + _control.Creature.Status.FitnessInPercent + "% \n";
                _info += "\t\tHealth\t\t : " + _control.Creature.Status.HealthInPercent + "% \n";
                _info += "\t\tPower\t\t : " + _control.Creature.Status.PowerInPercent + "% \n";
                _info += "\t\tStamina\t\t : " + _control.Creature.Status.StaminaInPercent + "% \n";
                _info += "\n";
                _info += "\tArmor\t\t\t : " + (_control.Creature.Status.UseArmor ? _control.Creature.Status.ArmorInPercent + "%" : "INACTIVE") + "\n";
                _info += "\tDamage\t\t\t : " + _control.Creature.Status.DamageInPercent + "% \n";
                _info += "\tStress\t\t\t : " + _control.Creature.Status.StressInPercent + "% \n";
                _info += "\tDebility\t\t\t : " + _control.Creature.Status.DebilityInPercent + "% \n";
                _info += "\tHunger\t\t\t : " + _control.Creature.Status.HungerInPercent + "% \n";
                _info += "\tThirst\t\t\t : " + _control.Creature.Status.ThirstInPercent + "% \n";
                _info += "\n";
                _info += "\tAggressivity\t\t : " + _control.Creature.Status.AggressivityInPercent + "% \n";
                _info += "\tExperience\t\t : " + _control.Creature.Status.ExperienceInPercent + "% \n";
                _info += "\tNosiness\t\t\t : " + _control.Creature.Status.NosinessInPercent + "% \n";
                _info += "\tAnxiety\t\t\t : " + _control.Creature.Status.AnxietyInPercent + "% \n";
            }
            else
            {
                _info += "\tDurability\t\t : " + _control.Creature.Status.Durability + "/" + _control.Creature.Status.InitialDurabilityMaximum + " (" + _control.Creature.Status.DurabilityInPercent + "%) \n";
                _info += "\n";
                _info += "\tFitness\t\t\t : " + _control.Creature.Status.FitnessInPercent + "% \n";
                _info += "\tHealth\t\t\t : " + _control.Creature.Status.HealthInPercent + "% \n";
                _info += "\tDamage\t\t\t : " + _control.Creature.Status.DamageInPercent + "% \n";
            }

            _info += "\n";

            _info += "Motion Control: " + _control.Creature.Move.MotionControl.ToString();

            if (_control.Creature.Move.MotionControl == MotionControlType.RIGIDBODY)
            {
                Rigidbody _rb = _control.GetComponent <Rigidbody>();
                if (_rb == null)
                {
                    _info += " - MISSING RIGIDBODY";
                }
                else
                {
                    _info += "\n";
                    _info += "\tRigidbody Kinematic\t : " + _rb.isKinematic.ToString() + "\n";
                    _info += "\tRigidbody Gravity   \t : " + _rb.useGravity.ToString() + "\n";
                    _info += "\tRigidbody Constraints\t : " + _rb.constraints.ToString() + "\n";
                }
            }

            _info += "\n";
            _info += "\tVelocity\t\t\t : " + _control.Velocity + "\n";
            _info += "\tForward Speed\t\t : " + _control.Creature.Move.MoveSpeed + "\n";
            _info += "\tAngular Speed\t\t : " + System.Math.Round(_control.Creature.Move.MoveAngularSpeed, 2) + " (" + System.Math.Round(_control.Creature.Move.MoveAngularSpeedLimited, 2) + ")\n";
            _info += "\tVertical Speed\t\t : " + System.Math.Round(_control.Creature.Move.VerticalSpeed, 2) + "\n";
            _info += "\tMove Direction\t\t : " + System.Math.Round(_control.Creature.Move.MoveDirectionAngle, 2) + "\n";
            _info += "\tMove Distance\t\t : " + System.Math.Round(_control.Creature.Move.TargetMovePositionDistance, 2) + " (" + System.Math.Round(_control.Creature.Move.MovePositionDistance, 2) + ")\n";
            _info += "\tAltitude\t\t\t : " + System.Math.Round(_control.Creature.Move.Altitude, 2) + " (" + System.Math.Round(_control.Creature.Move.AbsoluteAltitude, 2) + ")\n";

            //+ " Behaviour Velocity : " + _control.Creature.Move.CurrentMove.Motion.Velocity.ToString() + "/" + _control.Creature.Move.CurrentMove.Motion.AngularVelocity.y + "\n";


            Animator _animator = _control.GetComponent <Animator>();

            if (_animator != null)
            {
                _info += "\n";
                _info += "Animator\n";
                _info += "\tController\t : " + (_animator.runtimeAnimatorController == null ? "missing" : _animator.runtimeAnimatorController.name) + "\n";
                _info += "\tRootMotion\t : " + _animator.applyRootMotion.ToString() + "\n";
            }

            _info += "\n";

            _info += "Targets : " + GetTargetsCount(_control) + " (currently available: " + _control.Creature.AvailableTargets.Count + ")\n";
            _info += "\tActive Target\t : '" + _control.Creature.ActiveTargetName + "' (" + _control.Creature.ActiveTargetID + ")\n";
            _info += "\t\tRuntime\t : " + System.Math.Round(_control.Creature.ActiveTargetActiveTime, 3) + " secs. (total : " + System.Math.Round(_control.Creature.ActiveTargetActiveTimeTotal, 3) + " secs.)\n";
            _info += "\t\tSpeed\t : " + System.Math.Round(_control.Creature.ActiveTargetSpeed, 3) + "\n";
            _info += "\t\tVelocity\t : " + _control.Creature.ActiveTargetVelocity + "\n";
            _info += "\t\tDistance\t : " + System.Math.Round(_control.Creature.ActiveTargetDistance, 3) + "\n";
            _info += "\t\tDirection\t : " + _control.Creature.ActiveTargetDirection + "\n";
            _info += "\t\tPosition\t : " + _control.Creature.ActiveTargetTransformPosition + "\n";
            _info += "\n";
            _info += "\tPrevious Target : '" + _control.Creature.PreviousTargetID + "' (" + _control.Creature.PreviousTargetName + ")\n\n";

            _info += "Behaviours : " + _control.Creature.Behaviour.BehaviourModes.Count + " Modes with " + GetBehaviorModeRulesCount(_control) + " Rules \n";
            _info += "\tActive Mode\t : '" + _control.Creature.Behaviour.ActiveBehaviourModeKey + "'\n";
            _info += "\t\tRuntime\t : " + System.Math.Round(_control.Creature.Behaviour.BehaviourTimer, 3) + " secs.\n";
            _info += "\tPrevious Mode\t : '" + _control.Creature.Behaviour.LastBehaviourModeKey + "'\n\n";

            BehaviourModeRuleObject _rule = _control.Creature.Behaviour.ActiveBehaviourModeRule;

            if (_rule != null)
            {
                _info += "Animation Name : " + _rule.Animation.GetAnimationName() + " (" + _rule.Animation.GetAnimationLength() + " secs.)\n\n";
            }
            else
            {
            }

            _info += "Current Move: " + _control.Creature.Move.CurrentMove.Enabled.ToString().ToUpper() + " type: " + _control.Creature.Move.CurrentMove.Type.ToString() + "\n";
            _info += "\tStopping Distance: " + _control.Creature.Move.CurrentMove.StoppingDistance + " (default: " + _control.Creature.Move.DefaultMove.StoppingDistance + ")\n";
            _info += "\t\tIgnore Level Difference: " + _control.Creature.Move.CurrentMove.IgnoreLevelDifference.ToString().ToUpper() + " (default: " + _control.Creature.Move.DefaultMove.IgnoreLevelDifference.ToString().ToUpper() + ")\n";

            _info += "\tSegment Length: " + _control.Creature.Move.CurrentMove.SegmentLength + " (default: " + _control.Creature.Move.DefaultMove.SegmentLength + ")\n";
            _info += "\t\tSegment Variance: " + _control.Creature.Move.CurrentMove.SegmentVariance + " (default: " + _control.Creature.Move.DefaultMove.SegmentVariance + ")\n";
            _info += "\tDeviation Length: " + _control.Creature.Move.CurrentMove.DeviationLength + " (default: " + _control.Creature.Move.DefaultMove.DeviationLength + ")\n";
            _info += "\t\tDeviation Variance: " + _control.Creature.Move.CurrentMove.DeviationVariance + " (default: " + _control.Creature.Move.DefaultMove.DeviationVariance + ")\n\n";



            if (_control.Creature.Move.Deadlock.Enabled)
            {
                _info += "Deadlocked: " + (_control.Creature.Move.Deadlock.Deadlocked?"TRUE":"FALSE") + " (distance: " + _control.Creature.Move.Deadlock.DeadlocksDistance + " time: " + _control.Creature.Move.Deadlock.DeadlockMoveTimer + "/" + _control.Creature.Move.Deadlock.DeadlockLoopTimer + " secs.)\n";
                _info += "  deadlocks: " + _control.Creature.Move.Deadlock.DeadlocksCount + " - critical positions: " + _control.Creature.Move.Deadlock.DeadlocksCriticalPositions;
                _info += "  loops: " + _control.Creature.Move.Deadlock.DeadlockLoopsCount + " - critical loops: " + _control.Creature.Move.Deadlock.DeadlocksCriticalLoops;
            }
            else
            {
                _info += "Deadlock Handling: deactivated";
            }

            _info += "\n";

            //_info += "Active Behaviour Rule : '" + _control.Creature.Behaviour.c + "'";

            _info += "Active Counterparts: " + _control.ActiveCounterparts.Count + "\n";

            foreach (ICECreatureEntity _entity in _control.ActiveCounterparts)
            {
                _info += "\t - " + _entity.name + " (" + _entity.ObjectInstanceID + ")\n";
            }



            Info.Note(_info);
        }