Exemple #1
0
 public virtual void Attack(Being target)
 {
     target.Health -= Damage;
     Game.GameEvents.AddEvent(Name + " Hit " + target.Name + " for " + Damage + " damage");
     if (target.Health <= 0)
         Game.GameEvents.AddEvent(target.Name + " was killed");
 }
Exemple #2
0
        public void testBasicStructure()
        {
            Being b = new Being();
            b.Ident = "ALASTAIR";
            b.RightEye = new BeingEye();
            b.RightEye.EyeState = EyeState.FIXATION;
            b.RightEye.GazeVector = new Pose6D();
            CommunicationHelper.setPose6D( b.RightEye.GazeVector, 23.5678549M, 92.64654864M, null, 45.765234560M, 60.34444124365M, null, 0.9M );

            GazeTrackData gt = new GazeTrackData();
            gt.Timestamp = DateTime.UtcNow;
            gt.SequenceNumber = 0;
            System.Collections.Generic.List<Being> beingList = new System.Collections.Generic.List<Being>();
            beingList.Add( b );
            gt.Beings = beingList.ToArray();

            System.Collections.Generic.List<GazeTrackData> gazeTrackDataList = new System.Collections.Generic.List<GazeTrackData>();
            gazeTrackDataList.Add( gt );

            GazeTrackDataSet gtd = new GazeTrackDataSet();
            gtd.GazeTrackData = gazeTrackDataList.ToArray();

            System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer( gtd.GetType() );
            TextWriter writer = new SpecificEncodingStringWriter( Encoding.UTF8 );
            XmlWriter xmlWriter = XmlWriter.Create( writer );
            x.Serialize( xmlWriter, gtd );
            Console.WriteLine( "XML:" );
            Console.WriteLine( writer.ToString() );
            Console.WriteLine( "Length: " + writer.ToString().Length );
            log.Debug( "Generated XML" );
            log.Debug( writer.ToString() );
            log.Debug( "Generated XML Length: " + writer.ToString().Length );
        }
 /*
     This is a class full of static methods that preform the buff debuff effects on a being type object
 */
 //Buffs---------------------
 public static void buffAttack(Being be, float endTime, float increase)
 {
     if (endTime <= Time.time)
     {
         be.resetAttack();
     }
     else be.changeAttack(increase);
 }
 public static void buffSpeed(Being be, float endTime, float increase)
 {
     if (endTime <= Time.time)
     {
         be.resetSpeed();
     }
     else be.changeSpeed(increase);
 }
 // decrease should be a negative number
 public static void debuffSlow(Being be, float endTime, float decrease)
 {
     if (endTime <= Time.time)
     {
         be.resetSpeed();
     }
     else be.changeSpeed(decrease);
 }
 //Debuffs ----------------------
 public static void debuffStun(Being be, float endTime)
 {
     if (endTime <= Time.time)
     {
         be.resetSpeed();
     }
     else be.speed = 0f;
 }
Exemple #7
0
 /*removes corpse from the list of citizens
  * called from the being when it determines itself is dead
  * */
 public void removeCitizen(Being corpse)
 {
     if(citizens.Contains(corpse)){
         citizens.Remove(corpse);
     }else{
         Debug.LogError("Tried to remove corpse from wrong village");
     }
 }
Exemple #8
0
 public override void Attack(Being target)
 {
     if (Game.Rnd.NextDouble() <= .5)
         base.Attack(target);
     else {
         Game.GameEvents.AddEvent("The Ogre missed.. and hit himself");
         base.Attack(this);
     }
 }
 public static string GetVariable(Being being, string variableName)
 {
     if (being.GetComponent <LuaPowerBeingVariablesMonoBehavior>() == null)
     {
         being.gameObject.AddComponent <LuaPowerBeingVariablesMonoBehavior>();
     }
     if (being.GetComponent <LuaPowerBeingVariablesMonoBehavior>().BeingVariables.ContainsKey(variableName))
     {
         return(being.GetComponent <LuaPowerBeingVariablesMonoBehavior>().BeingVariables[variableName]);
     }
     else
     {
         return("Variable Not Set");
     }
 }
 public bool SafeDistanceQuestion()
 {
     Collider[] closeEnemies = Physics.OverlapSphere(transform.position, dangerDetectionRange);
     for (int i = 0; i < closeEnemies.Length; i++)
     {
         Being enemy = closeEnemies[i].GetComponent <Being>();
         if (CheckIfEnemy(enemy))
         {
             flags.safeDistance = false;
             return(flags.safeDistance);
         }
     }
     flags.safeDistance = true;
     return(flags.safeDistance);
 }
    //passive ability packs
    void BasicPassiveAbilities(Being b)
    {
        Ability reg = new Ability(b, "Stamina regen", AbilityChassis.Block, AbilityType.PublicNormal, 100, 1, true);

        reg.isDefence = false;

        //NewRound_Condition nrc = new NewRound_Condition(actionManager, b, "New round condition");
        ModulateResource_Effect staminaRegen = new ModulateResource_Effect(actionManager, b, reg, "Stamina regen", "STAMINA", +50, true, CombatState.Activate, 0, 0);
        Self_TargetingCriteria  self         = new Self_TargetingCriteria(actionManager, b);

        reg.effects.Add(staminaRegen);
        //reg.conditions.Add(nrc);
        reg.targetingCriteria.Add(self);
        b.abilities.Add(reg);
    }
    void BasicSelfHealingAbility(Being b)
    {
        //Create a new ability called Healself
        Ability ab = new Ability(b, "Heal", AbilityChassis.Melee, AbilityType.PublicNormal, 100, 1, false);
        //create a condition that MP must not be greater the 5 (the cost)
        ResourceAtValue_Condition gt = new ResourceAtValue_Condition(actionManager, b, "MP greater than 5", "MP", ">", 5);

        HealSelf_Effect        hs = new HealSelf_Effect(actionManager, b, ab, "HealSelf", 10, CombatState.Hit, 0, 0);
        Self_TargetingCriteria s  = new Self_TargetingCriteria(actionManager, b);

        ab.conditions.Add(gt);
        ab.effects.Add(hs);
        ab.targetingCriteria.Add(s);
        b.abilities.Add(ab);
    }
    void HealSelfBehaviour(Being b)
    {
        //Create a new behaviour called 'heal self'
        Behaviour healSelf = new Behaviour(actionManager, b, "Heal self", ThoughtType.Normal);
        //Create a condition that hp must be below 20
        ResourceAtValue_Condition hpLessThanTwenty = new ResourceAtValue_Condition(actionManager, b, "HP less that 20", "HP", "<", 20);
        //Create a selectionCriteria for appropriate abilities that the must have a 'healself' effect
        IncludesEffect_SelectionCriteria includesHealSelf = new IncludesEffect_SelectionCriteria(actionManager, b, "IncludesHealSelf", "HealSelf");
        Self_TargetingCriteria           targetSelf       = new Self_TargetingCriteria(actionManager, b);

        healSelf.conditions.Add(hpLessThanTwenty);;
        healSelf.selectionCriteria.Add(includesHealSelf);
        healSelf.targetingCriteria.Add(targetSelf);
        b.behaviours.Add(healSelf);
    }
Exemple #14
0
        public override void OnHit(Being target)
        {
            if (TargetsHit.Contains(target))
            {
                return;
            }
            Distance -= AbilityConstants.LavaBlastDistanceLossPerHit;
            TargetsHit.Add(target);
            var oldDamage = Damage.Damage;

            Damage.Damage += Origin.DistanceBetween(Position) * ((Zerd)Creator).SkillValue(SkillType.Sniper, true) / 100f;
            Damage.DamageBeing(target);
            target.AddBuff(new BurnBuff(Creator, target, TimeSpan.FromMilliseconds(AbilityConstants.LavaBlastBurnLength), Damage.Damage * AbilityConstants.LavaBlastBurnDamagePercentage, AbilityTypes.LavaBlast));
            Damage.Damage = oldDamage;
        }
Exemple #15
0
 private void UIRefresh()
 {
     for (int i = 0; i < maximum; ++i)
     {
         Being b = Board.B.Get(i);
         if (b == null)
         {
             icons[i].SetSprite();
         }
         else
         {
             icons[i].SetSprite(b.Health);
         }
     }
 }
Exemple #16
0
    private void BeingSetUp(Being b)
    {
        var gb = DrawBeing(b);

        gb.transform.position = new Vector3(b.Place.X, b.Place.Height * GTileS.HeightMultiplier, b.Place.Y);
        GBeings[b]            = gb;

        var binft  = Instantiate(BeingInfoTextPrototype);
        var binft2 = binft.GetComponent <BeingToTextHandler>();

        BeingInfo[b] = binft;
        binft.SetActive(false);
        binft2.SetBeing(b);
        binft.transform.SetParent(BeingInfoPanel.transform);
    }
Exemple #17
0
    static public float GetEffectAmount(Being being, string effect)
    {
        if (!LuaPowerData.customEnums[typeof(Status)].Contains(effect))
        {
            Debug.Log("NewEffect was not called for effect " + effect);
            return(0);
        }
        Status eff = (Status)LuaPowerData.customEnums[typeof(Status)].FindIndex(new Predicate <string>((string str) => str == effect));

        if (being.GetStatusEffect(eff))
        {
            return(being.GetStatusEffect(eff).amount);
        }
        return(0);
    }
    public override void use(Being user, Tile target)
    {
        Attack a = new Attack();

        a.dams.Add(new Damage(10f, DamageType.PIERCE));
        target.occupant.damage(a);
        Handler.logA(user.name + " harpoons the " + target.occupant.name + "!", this.image);
        Being person = target.occupant;
        Tile  t      = Handler.h.r.getTileRelative(target, new TileOffset(user.getSide().Equals(Side.PLAYER) ? -1: 1, 0));

        if (t.occupant == null)
        {
            Room.moveTo(person, t);
        }
    }
Exemple #19
0
 private void Shot(Being being, bool play_sound = true)
 {
     if (!this.m_Armed)
     {
         return;
     }
     this.m_Target = being;
     this.m_Animator.SetTrigger(this.m_ShotHash);
     this.m_ArrowSlot.Activate(false);
     if (play_sound && this.m_ShotSoundClips != null && this.m_ShotSoundClips.Count > 0)
     {
         this.m_AudioSource.PlayOneShot(this.m_ShotSoundClips[UnityEngine.Random.Range(0, this.m_ShotSoundClips.Count - 1)]);
     }
     this.m_Armed = false;
 }
Exemple #20
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Being being = collision.gameObject.GetComponent <Being>();

        if (being == null)
        {
            //maybe want to check for spell
            Destroy(gameObject);
            return;
        }

        being.Damage(damage);

        Destroy(gameObject);
    }
Exemple #21
0
 public void Initialize(Being being = null)
 {
     this.m_AnimEventsReceivers   = base.GetComponents <IAnimationEventsReceiver>();
     this.m_AnimEventsReceiversEx = base.GetComponents <IAnimationEventsReceiverEx>();
     this.m_SoundEventsReceivers  = base.GetComponents <ISoundEventsReceiver>();
     this.m_Animator    = base.GetComponent <Animator>();
     this.m_AudioSource = base.gameObject.AddComponent <AudioSource>();
     this.m_AudioSource.outputAudioMixerGroup = GreenHellGame.Instance.GetAudioMixerGroup(AudioMixerGroupGame.AI);
     this.m_AudioSource.spatialBlend          = 1f;
     this.m_AudioSource.rolloffMode           = AudioRolloffMode.Linear;
     this.m_AudioSource.minDistance           = 2f;
     this.m_AudioSource.maxDistance           = 30f;
     this.m_AudioSource.spatialize            = true;
     this.m_Being = being;
     this.SetupEvents();
 }
Exemple #22
0
        public override void OnHit(Being target)
        {
            Damage.DamageBeing(target);
            IsActive = false;
            var zerd = Creator as Zerd;

            if (zerd == null)
            {
                return;
            }
            zerd.Mana += zerd.MaxMana * zerd.SkillValue(SkillType.Replenish, false) / 100;
            if (zerd.Mana > zerd.MaxMana)
            {
                zerd.Mana = zerd.MaxMana;
            }
        }
Exemple #23
0
    public static void AddHook(FTrigger trigger, string func, Being being = null)
    {
        bool duplicate = false;

        foreach (var hook in LuaPowerData.luaHooks)
        {
            if (hook._trigger == trigger && hook._func == func)
            {
                duplicate = true;
            }
        }
        if (!duplicate)
        {
            LuaPowerData.luaHooks.Add(new LuaPowerTrigger(trigger, func, being));
        }
    }
    public override void Use(Being target)
    {
        //Debug.Log("using stamina cost effect");

        Stat s = parentBeing.GetStat(statName);

        if (s != null)
        {
            StatModulation sm = new StatModulation(s, "-", cost);
            battleManager.effectQueue.Add(sm);
            //Debug.Log( parentBeing.beingName + "gets a " + statName + " -" + cost + " token");
            return;
        }

        Debug.Log("ERROR: " + parentBeing.beingName + " does not have a " + statName + " stat.");
    }
Exemple #25
0
        public override bool ShouldPerform()
        {
            float num = this.m_AI.transform.position.Distance(Player.Get().transform.position);

            if (num > this.m_AI.m_Params.m_AttackRange * 2f)
            {
                return(false);
            }
            if (this.m_Active)
            {
                return(base.GetDuration() < this.m_Length);
            }
            Being enemy = this.m_AI.m_EnemyModule.m_Enemy;

            return(enemy && this.m_AI.m_GoalsModule.m_PrevGoal != null && this.m_AI.m_GoalsModule.m_PrevGoal.m_Type == AIGoalType.JumpBack);
        }
Exemple #26
0
 public override AbstractAction SelectAction()
 {
     if (dormant)
     {
         Being oponent = findOponent();
         if (oponent != null)
         {
             wakeUp();
         }
         return(new WaitAction(Being));
     }
     else
     {
         return(base.SelectAction());
     }
 }
Exemple #27
0
 // Calculates the damage a defender takes after a successful hit
 // and subtracts it from its Health
 // Then displays the outcome in the MessageLog.
 private static void ResolveDamage(Being defender, int damage)
 {
     if (damage > 0)
     {
         defender.Health = defender.Health - damage;
         MainLoop.UIManager.MessageLog.Add($" {defender.Name} was hit for {damage} damage");
         if (defender.Health <= 0)
         {
             ResolveDeath(defender);
         }
     }
     else
     {
         MainLoop.UIManager.MessageLog.Add($"{defender.Name} blocked all damage!");
     }
 }
Exemple #28
0
    public static Being generateImp(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new PitchforkMoveCard();
        b.aWeap    = WeaponFactory.getPitchfork();
        b.bWeap    = WeaponFactory.getFireball();
        b.baseRMap.addResist(DamageType.FIRE, .45f);
        b.baseRMap.addResist(DamageType.HOLY, -.45f);
        b.setSprite(Resources.Load <Sprite>("sprites/imp"));
        b.maxHp = 25f;
        b.setHp(b.maxHp);
        b.name = "Imp";
        return(b);
    }
Exemple #29
0
    public static Being generateFlameDemon(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new NoMoveCard();
        b.aWeap    = WeaponFactory.getFlameSummon();
        b.bWeap    = WeaponFactory.getFireball();
        b.baseRMap.addResist(DamageType.FIRE, .70f);
        b.baseRMap.addResist(DamageType.HOLY, -.45f);
        b.setSprite(Resources.Load <Sprite>("sprites/ifrit"));
        b.maxHp = 35f;
        b.setHp(b.maxHp);
        b.name = "Flame Demon";
        return(b);
    }
Exemple #30
0
    public static Being generateBat(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new ShamblerMoveCard();
        b.aWeap    = WeaponFactory.getBatBite();
        b.bWeap    = WeaponFactory.getBatBite();
        b.setSprite(Resources.Load <Sprite>("sprites/evil-bat"));
        b.maxHp = 10f;
        b.setHp(b.maxHp);
        b.name = "Bat";
        b.setSpeed(3);
        b.setAgilityMult(1.2f);
        return(b);
    }
Exemple #31
0
    public static Being generatePitchfork(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new PitchforkMoveCard();
        b.aWeap    = WeaponFactory.getPitchfork();
        b.bWeap    = WeaponFactory.getPitchfork();
        b.baseRMap.addResist(DamageType.FIRE, .1f);
        b.baseRMap.addResist(DamageType.HOLY, -.25f);
        b.setSprite(Resources.Load <Sprite>("sprites/evil-fork"));
        b.maxHp = 15f;
        b.setHp(b.maxHp);
        b.name = "Demonic Pitchfork";
        return(b);
    }
Exemple #32
0
    public static Being generateShambler(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new ShamblerMoveCard();
        b.aWeap    = WeaponFactory.getShamblerClaws();
        b.bWeap    = WeaponFactory.getShamblerClaws();
        b.baseRMap.addResist(DamageType.FIRE, -.2f);
        b.baseRMap.addResist(DamageType.SLASH, -.1f);
        b.setSprite(Resources.Load <Sprite>("sprites/shambling-zombie"));
        b.maxHp = 30f;
        b.setHp(b.maxHp);
        b.name = "Shambler";
        return(b);
    }
    //defence blocks
    void BasicDefences(Being b)
    {
        Ability def1 = new Ability(b, "Block", 100, 1, true);

        def1.isDefence    = true;
        def1.defenceSpeed = 50;
        ResourceAtValue_Condition reqStam      = new ResourceAtValue_Condition(battleManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina = new ModulateResource_Effect(battleManager, b, def1, "CostsStamina", "STAMINA", -10, true);
        Block_DefenceEffect       block        = new Block_DefenceEffect(battleManager, b, def1, "Block");
        Self_TargetingCriteria    self         = new Self_TargetingCriteria(battleManager, b, def1);

        def1.effects.Add(block);
        def1.effects.Add(costsStamina);
        def1.conditions.Add(reqStam);
        def1.targetingCriteria.Add(self);
        b.defences.Add(def1);

        //Create a generic 'dodge' defence
        Ability def2 = new Ability(b, "Dodge", 100, 1, true);

        def2.isDefence    = true;
        def2.defenceSpeed = 40;
        ResourceAtValue_Condition reqStam2      = new ResourceAtValue_Condition(battleManager, b, "Stamina above 0", "STAMINA", ">", 0);
        ModulateResource_Effect   costsStamina2 = new ModulateResource_Effect(battleManager, b, def2, "CostsStamina", "STAMINA", -20, true);
        Dodge_DefenceEffect       dodge         = new Dodge_DefenceEffect(battleManager, b, def2, "Dodge");
        Self_TargetingCriteria    self2         = new Self_TargetingCriteria(battleManager, b, def2);

        def2.effects.Add(dodge);
        def2.effects.Add(costsStamina2);
        def2.conditions.Add(reqStam2);
        def2.targetingCriteria.Add(self2);
        b.defences.Add(def2);

        //Create a generic 'free action' defence
        Ability def3 = new Ability(b, "Any Action", 100, 1, true);

        def3.isDefence    = true;
        def3.defenceSpeed = 5;
        NoCondition_Condition   noCondition6 = new NoCondition_Condition(battleManager, b, "NoCondition");
        Self_TargetingCriteria  self3        = new Self_TargetingCriteria(battleManager, b, def3);
        AnyAction_DefenceEffect anyAction    = new AnyAction_DefenceEffect(battleManager, b, def3, "AnyAction");

        def3.effects.Add(anyAction);
        def3.conditions.Add(noCondition6);
        def3.targetingCriteria.Add(self3);
        b.defences.Add(def3);
    }
Exemple #34
0
    IEnumerator SelectAbility(Being being) //should perhaps be called Select ability
    {
        Debug.Log("starting " + being.beingName + "'s turn" + " HP:" + being.GetResourceValue("HP", 1) + " STAMINA:" + being.GetResourceValue("STAMINA", 1));

        //Any looking for passive or some such would go here

        being.GetUseableActiveAbilities();

        if (being.useableAbilities.Count > 0)
        {
            if (being.playerControlled == true)
            {
                for (int i = 0; i < being.useableAbilities.Count; i++)
                {
                    Debug.Log(i + ". " + being.useableAbilities[i].abilityName);
                }

                if (playerSelection > -1)
                {
                    being.SelectTargets(being.useableAbilities[playerSelection - 1]);
                }
                if (being.selectedAbility == null)
                {
                    currentState = CombatStates.WAITFORPLAYERINPUT;
                }
                savedState = CombatStates.SELECTABILITY;
            }
            if (being.playerControlled == false)
            {
                being.SelectAnAbility();
                being.SelectTargets(being.selectedAbility);
                Debug.Log(being.beingName + " chooses " + being.selectedAbility.abilityName);
                yield return(new WaitForSeconds(textSpeed));

                CalculateToHit(being, being.selectedAbility, being.selectedTargets);
                yield return(new WaitForSeconds(textSpeed));

                nextTurnDone = false;
            }
        }
        else
        {
            Debug.Log(being.beingName + " can't do anything! (is this an error?)");
            nextTurnDone = false;
            yield return(null);
        }
    }
Exemple #35
0
        private void FightRound()
        {
            Being first = (SpeedCheck())
                ? Fighter1
                : Fighter2;

            Being second = (first != Fighter1)
                ? Fighter1
                : Fighter2;

            first.Attack(second);
            if (second.Health <= 0)
            {
                return;
            }
            second.Attack(first);
        }
Exemple #36
0
    public static Being generateGoo(Tile t)
    {
        Being b = new Being(Side.DEMONS);

        Room.moveTo(b, t);
        b.moveCard = new GooMoveCard();
        b.aWeap    = WeaponFactory.getGoopThrow();
        b.bWeap    = WeaponFactory.getGoopBash();
        b.baseRMap.addResist(DamageType.FIRE, -.3f);
        b.baseRMap.addResist(DamageType.SLASH, -.2f);
        b.baseRMap.addResist(DamageType.ACID, .5f);
        b.setSprite(Resources.Load <Sprite>("sprites/gooey-daemon"));
        b.maxHp = 20f;
        b.setHp(b.maxHp);
        b.name = "Goo Demon";
        return(b);
    }
Exemple #37
0
        public int GetNumberAlive()
        {
            int count = 0;

            foreach (UniversalObject uObj in UniversalObjectsInside)
            {
                if (uObj != null && uObj is Being)
                {
                    Being being = uObj as Being;
                    if (being.IsAlive)
                    {
                        count++;
                    }
                }
            }
            return(count);
        }
Exemple #38
0
        public BurnBuff(Being creator, Being being, TimeSpan length, float burnDamage, AbilityTypes abilityType) : base(creator, being, length, true, damagePerSecond: burnDamage)
        {
            Texture   = TextureCacheFactory.Get("Buffs/burn.png");
            Animation = new Animation("");
            Animation.AddFrame(Texture.Bounds, TimeSpan.FromSeconds(0.15));
            var zerd = creator as Zerd;

            if (zerd == null)
            {
                return;
            }
            DamagePerSecond *= zerd.SkillValue(SkillType.DeepBurn, true);
            Length           = TimeSpan.FromMilliseconds(TimeRemaining.TotalMilliseconds * zerd.SkillValue(SkillType.DeepBurn, true));
            TimeRemaining    = Length;
            AbilityType      = abilityType;
            DamageType       = DamageTypes.Fire;
        }
Exemple #39
0
    void deffMod(Being attacker)
    {

    }
Exemple #40
0
    void attackMod(Being target)
    {

    }
        public static void Main(string[] args)
        {
            //			Object
            Being b=new Being();
            Console.WriteLine (b);

            //			Object attributes
            Person p1=new Person();
            p1.name="Jane";

            Person p2=new Person();
            p2.name="Beky";

            Console.WriteLine (p1.name);
            Console.WriteLine (p2.name);

            //			Methods
            Circle c=new Circle();
            c.SetRadius(5);
            Console.WriteLine (c.Area());

            //			Access modifiers
            Person2 p=new Person2();
            p.name="Jane";
            p.SetAge(17);
            Console.WriteLine ("{0} is {1} years old",p.name,p.GetAge());
            //			another example of access modifiers
            Derived d=new Derived();
            d.info();

            //			The constructor
            new Being2();
            new Being2("Tom");
            //			another example of constructor
            string name="Lenka";
            DateTime born=new DateTime(1990,3,5);

            MyFriend f=new MyFriend(name,born);
            f.info();

            //			Constructor chaining
            new Circle2(5);
            new Circle2();

            //			Class constants
            Console.WriteLine (Math.PI);
            Console.WriteLine (Math.radius);

            //			The ToString() method
            Being3 be=new Being3();
            object ob=new object();
            Console.WriteLine (ob.ToString());
            Console.WriteLine (be.ToString());
            Console.WriteLine (be);
            //			Note that when we call the Console.WriteLine() method
            //			with an object as a parameter,
            //			the ToString() is being called.

            //			Inheritance
            new Human();
            //			another example
            Console.WriteLine ();
            new Human2();
            Dog dog=new Dog();
            dog.GetCount();
            //			another example2
            Console.WriteLine ();
            Circle3 x=new Circle3(2,4,6);
            Console.WriteLine (x);

            //			Abstract classes and methods
            Console.WriteLine ();
            Circle4 z=new Circle4(12,45,22);
            Console.WriteLine (z);//show the ToString() method, defaultly
            Console.WriteLine ("Area of circle: {0}",z.Area());
            Console.WriteLine (z.GetCoordinates());
        }