コード例 #1
0
 public void Init(IAbsorbingEntity owner, AbsorberTraitData data, KrbGameEvents.AbsorptionEvents absorbEvents)
 {
     _data = data;
     _activeAbsorptionData = _data.NoAbsorption;
     _owner        = owner;
     _absorbEvents = absorbEvents;
 }
コード例 #2
0
    public void AbsorptionExpired(IAbsorbingEntity entity)
    {
        AbsorptionExpiredEvent evt = CreateEvent <AbsorptionExpiredEvent>();

        evt.AbsorberName   = entity.Name;
        evt.AbsorberCoords = entity.Coords;
        AddEvent(evt);
    }
コード例 #3
0
    public void AbsorptionHappened(IAbsorbableEntity absorbed, IAbsorbingEntity absorber, string[] attrs)
    {
        AbsorptionEvent evt = CreateEvent <AbsorptionEvent>();

        evt.AbsorberName   = absorber.Name;
        evt.AbsorberCoords = absorber.Coords;
        evt.Attributes     = attrs;

        evt.AbsorbedName   = absorbed.Name;
        evt.AbsorbedCoords = absorbed.Coords;
        AddEvent(evt);
    }
コード例 #4
0
    public bool CanBeAbsorbedBy(IAbsorbingEntity absorber)
    {
        if (_mapController.Distance(absorber.Coords, Coords) > absorber.AbsorberTrait.Data.AbsorbDistance)
        {
            return(false);
        }

        if (_absorptionData == absorber.AbsorberTrait.Data.NoAbsorption)
        {
            return(false);
        }

        return(_hpTrait.HPRatio <= absorber.AbsorberTrait.Data.HPPercentToEnableAbsorb);
    }
コード例 #5
0
    public void AbsorptionFailed(IAbsorbingEntity absorber, bool alreadyAbsorbing)
    {
        SimpleMessage msg = CreateEvent <SimpleMessage>();

        msg.Text = $"{absorber.Name} try to absorb entity but failed.";
        if (alreadyAbsorbing)
        {
            msg.Text += $" It is already absorbing something else. Wait for it to dispel or press U\n";
        }
        else
        {
            msg.Text += "\n";
        }
        AddEvent(msg);
    }
コード例 #6
0
 public void BeAbsorbed(IAbsorbingEntity absorber)
 {
     TakeDamage(_hpTrait.HP);
 }
コード例 #7
0
ファイル: KrbGameEvents.cs プロジェクト: wildrabbit/7drl_krb
 public void SendAbsorbFailed(IAbsorbingEntity absorber, bool alreadyAbsorbing)
 {
     AbsorbFailed?.Invoke(absorber, alreadyAbsorbing);
 }
コード例 #8
0
ファイル: KrbGameEvents.cs プロジェクト: wildrabbit/7drl_krb
 public void SendAbsorptionCancelled(IAbsorbingEntity absorber)
 {
     AbsorptionCancelled?.Invoke(absorber);
 }
コード例 #9
0
ファイル: KrbGameEvents.cs プロジェクト: wildrabbit/7drl_krb
 public void SendAbsorptionExpired(IAbsorbingEntity absorber)
 {
     AbsorptionExpired?.Invoke(absorber);
 }
コード例 #10
0
ファイル: KrbGameEvents.cs プロジェクト: wildrabbit/7drl_krb
 public void SendAbsorptionHappened(IAbsorbableEntity target, IAbsorbingEntity absorber, string[] traitsGained)
 {
     WasAbsorbed?.Invoke(target, absorber, traitsGained);
 }