Example #1
0
        public override void HandleSignal(Signal signal)
        {
            if (signal is Stimulation)
            {
                var stimulation = signal as Stimulation;
                var affinity    = Pattern.Affinity(stimulation.Peptide, AffinityType.Euclidean);

                if (affinity >= Globals.HelperAffinityThreashold)
                {
                    peptideAffinitySum += affinity;
                    costimulationSum   += stimulation.Concentration;
                    Activators.Add(stimulation.Sender);

                    if (!Activated && peptideAffinitySum + costimulationSum > Globals.HelperActivationThreshold)
                    {
                        Activated = true;

                        //Secrete(new Cytokine(Address, CytokineType.IL2, costimulationSum));	// TODO: X64 stimulates growth and differentiation of T cell response
                        //Secrete(new Cytokine(Address, CytokineType.IL4, costimulationSum));	// TODO: X64 stimulates proliferation and differentiation

                        string nodes = "";
                        foreach (var activator in Activators)
                        {
                            nodes += activator + ",";
                        }
                        Log("ALARM: Attack detected in node " + nodes.TrimEnd(new char[] { ',' }), LogLevel.Major);

                        // die after activation
                        Apoptosis();
                    }
                }
            }
            base.HandleSignal(signal);
        }
Example #2
0
 public void AddActivator(INeuron neuron, double weigth)
 {
     Activators.Add(neuron, weigth);
     neuron.Outputs.Add(this, weigth);
 }